1

代码:

NSString *ds = @"2013-02-25";
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
NSDate* date = [formatter dateFromString:ds];
NSLog(@"%@", date); //2012-02-24 16:00:00 +0000
[formatter setDateFormat:@"MMM dd, YYYY"];
NSLog(@"%@", [formatter stringFromDate:date]); //Feb 25, 2012

我做错了什么吗?还是 iOS 6 SDK 错误?

4

1 回答 1

6

改变这个:

[formatter setDateFormat:@"YYYY-MM-dd"];
[formatter setDateFormat:@"MMM dd, YYYY"];

到 :

[formatter setDateFormat:@"yyyy-MM-dd"];
[formatter setDateFormat:@"MMM dd, yyyy"];

错误原因,

使用 YYYY 是一个常见的错误。yyyy 指定日历年,而 YYYY 指定年份(“一年中的一周”),用于 ISO 年-周日历。在大多数情况下,yyyy 和 YYYY 产生相同的数字,但它们可能不同。通常,您应该使用日历年。

于 2013-02-27T05:02:39.203 回答