2010-08-21 55 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