Iphone:如何在当前日期的基础上添加一年,并以字符串形式返回,格式为2011-11-20

Iphone:如何在当前日期的基础上添加一年,并以字符串形式返回,格式为2011-11-20,iphone,xcode,iphone-sdk-3.0,Iphone,Xcode,Iphone Sdk 3.0,我需要知道当前的日期 然后再加上一年 并以YYYY-MM-DD aka 2011-11-20格式输出结果。您需要使用NSCalendar和NSDateComponents来执行所需操作。类似于下面的内容应该可以做到这一点 NSDate *todaysDate = [NSDate date]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComp

我需要知道当前的日期

然后再加上一年


并以YYYY-MM-DD aka 2011-11-20格式输出结果。您需要使用NSCalendar和NSDateComponents来执行所需操作。类似于下面的内容应该可以做到这一点

NSDate *todaysDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setYear:1];
NSDate *targetDate = [gregorian dateByAddingComponents:dateComponents toDate:todaysDate  options:0];
[dateComponents release];
[gregorian release];
然后,要以指定格式将目标日期作为字符串输出,可以执行以下操作:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 
NSString* dateString = [dateFormatter stringFromDate:targetDate];

希望这能有所帮助。

如何将其输出为字符串?对不起,朱尔斯,结尾遗漏了这一点。已更新原始答案,以包含显示如何将日期转换为所需字符串格式的代码。