【发布时间】:2014-02-11 07:12:35
【问题描述】:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy";
NSDate *date = [dateFormatter dateFromString:@"2011"];
for(int month=0;month<=12;month++)
{
dateFormatter.dateFormat=@"MMMM";
NSString * monthString = [[dateFormatter stringFromDate:date] capitalizedString];
NSLog(@"month: %@", monthString);
}
我需要显示特定年份中的所有月份。例如,如果我将年份指定为 2011 年,我希望该年的整个 12 个月都使用上面的代码。
但答案是,我得到了 1 月的一个月,打印了 12 次,但我需要在特定年份获得整个 12 个月。
【问题讨论】:
-
使用 NSDateComponents。您正在循环使用“月”(12 次),但未在循环中使用此变量。你不会得到 12 次相同的东西,这很正常。
-
是否有年份缺少特定月份?根据我的经验(只有 30 年),每年都有 12 个月。 ;-)
-
您每次都记录相同的日期。使用日期组件构建每个日期。
-
更严肃的一点是:使用
NSArray *months = [dateFormatter monthSymbols];可能会更快地得到你想要的东西
标签: objective-c nsdate nsdateformatter nscalendar