代码:
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的bug?
答案 0 :(得分: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产生相同的结果 数字,但它们可能不同。通常你应该使用 历年。