NSDateFormatter + dateFormatFromTemplate:options:locale:BUG?

时间:2010-12-17 02:24:28

标签: iphone nsdateformatter

请参阅以下代码和输出。

 NSDateComponents *dateComponents = [[[NSDateComponents alloc] init] autorelease];
 [dateComponents setYear:2011];
 [dateComponents setMonth:1];
 [dateComponents setDay:1];

 NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:dateComponents];

 NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
 [dateFormatter setDateFormat:[NSDateFormatter dateFormatFromTemplate:@"YYYYMMMd" options:0 locale:[NSLocale currentLocale]]];

 NSString *dateString = [dateFormatter stringFromDate:date];

 NSLog(@"Happy New Year: %@", dateString);

您对输出的期望是什么?

 Happy New Year: Jan 1, 2011

但结果是......

 Happy New Year: Jan 1, 2010

怎么了?请帮忙......

1 个答案:

答案 0 :(得分:16)

模板格式字符串应为@"yyyyMMMd"(年份小写“y”)。

大写“Y”是其他东西(见Unicode Date Format Patterns)。