2010-08-21 72 views
1

当我使用这个日期格式化程序时,如果我从日期 - >字符串 - >日期获得,那么它不会返回与我开始的日期相同的日期。NSDateFormatter编码与解码不一致

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
[formatter setDateFormat:@"MMM d, YYYY hh:mm aaa"]; 

NSDate *date = [NSDate date]; 
NSString *string = [formatter stringFromDate:date]; 
NSDate *resultingDate = [formatter dateFromString:string]; 

我的测试生成的日期字符串为Aug 24, 2010 01:00 PM。当反馈到dateFromString我得到2009-12-27 13:00:00。时间是正确的,但日期都是错误的。

任何人都知道这里发生了什么?

回答

3

的问题是这样的说法:

[formatter setDateFormat:@"MMM d, YYYY hh:mm aaa"]; 

改变的是对这个(小写字母Y):

[formatter setDateFormat:@"MMM d, yyyy hh:mm aaa"]; 

,它工作正常。

我真的不知道NSDateFormatter背后的代码有什么问题,但我所知道的是它的工作原理。

+0

你太棒了。谢谢。我仍然觉得很奇怪,它可以很好地处理日期 - >字符串,但不是字符串 - >日期。 – 2010-08-21 21:50:54