#iphone #objective-c
#iPhone #objective-c
Вопрос:
Я пытаюсь удалить время из даты, как это сделать, я пробую этот код, он не работает должным образом, где я ошибаюсь
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *todaysDate = [NSDate date];
//NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
NSDateComponents*dateComponents = [gregorian components:NSDayCalendarUnit fromDate:todaysDate];
[dateComponents setDay:1];
app.selectionData.fromDateSelected = [gregorian dateByAddingComponents:dateComponents toDate:todaysDate options:0];
//[dateComponents release];
[gregorian release];
Ответ №1:
Вы пытаетесь это сделать?
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
int comps = NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit;
NSDateComponents *dateComponents = [gregorian components:comps fromDate:[NSDate date]];
[dateComponents setDay:[dateComponents day] 1];
app.selectionData.fromDateSelected = [gregorian dateFromComponents:dateComponents];
[gregorian release];
Комментарии:
1. но я хочу установить день1 с сегодняшнего дня следующим образом [DateComponents setDay:1];
2. Кажется, вы хотите добавить 1 день к текущей дате. Я отредактировал ответ!
Ответ №2:
Чтобы получить только дату, вы можете использовать NSDateFormatter
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
NSString* currentDate = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];
Вы также можете указать свой собственный формат даты.
Например:
[dateFormattter setDateFormat:@"yyyy-mm-dd"];
Вы можете обратиться к UTS # 35 и руководству по форматированию даты для получения дополнительных опций форматирования.
Ответ №3:
Попробуйте это. Это работает для меня
NSDate *todaysDate = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSString *stringDate = [dateFormat stringFromDate:todaysDate];
NSLog(@"stringDate: %@",stringDate);
[dateFormat release];
Редактировать:
NSDate *today = [NSDate date];
NSTimeInterval secondsPerDay = 24 * 60 * 60;
NSDate *date = [today addTimeInterval:secondsPerDay];
//Change NSDate *date = [tomorrow addTimeInterval:-secondsPerDay]; for yesterday
NSDate *tomorrow = date;
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSString *stringDate = [dateFormat stringFromDate:tomorrow];
NSLog(@"stringDate: %@",stringDate);
[dateFormat release];
Надеюсь, это вам поможет.
Комментарии:
1. но я хочу с заданным днем: 1 с сегодняшнего дня, как это сделать [DateComponents setDay:1];
2. @Rocky: Что именно
setDay:1
делает настройка? Я не использовал NSDateComponents .3. установленный день: 1 я использую это для отображения в ячейке сегодня 1 день предположим, что если сегодня 5, то он показывает 6 в ячейке
4. Я отредактировал свой ответ, чтобы получить ответ для вас. Проверьте код в разделе РЕДАКТИРОВАНИЯ моего ответа. Это сработает для вас.