NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"%@",dateString);
// Retrieve NSDate instance from stringified date presentation
NSDate *dateFromString = [dateFormatter dateFromString:dateString];
// Create and initialize date component instance
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setDay:2];
// Retrieve date with increased days count
NSDate *newDate = [[NSCalendar currentCalendar]
dateByAddingComponents:dateComponents
toDate:dateFromString options:0];
NSLog(@"Original date: %@", [dateFormatter stringFromDate:dateFromString]);
NSLog(@"New date: %@", [dateFormatter stringFromDate:newDate]);
ВыходнойNSDate неправильный выход, когда дополнительный день NSDate
2013-05-17
Original date: 2013-05-17
New date: 1412647-09-06
добавить 2 дня до этого. Новая дата должна быть «2013-05-19 ?. Может кто-нибудь сказать мне, что я неправильно? Спасибо заранее.
Вы уверены, что 'day' правильно установлен в' 2'? - И пожалуйста, напишите * код *, а не * скриншоты *. –
Да, как указывает Маттиас, вы никогда не инициализировали дату NSDateComponents. Для инициализации необходимо использовать компоненты NSCalendarFromDate. –
@HotLicks: Сравните первый пример (Листинг 9) в [Выполнение расчётов календаря] (http://developer.apple.com/library/IOS/#documentation/Cocoa/Conceptual/DatesAndTimes/Articles/dtCalendricalCalculations.html). –