2009-05-04 112 views
2

我想解析一個NSDateFormatter使用另一個具有相同格式的NSDateFormatter生成的字符串。爲什麼我不能用NSDateFormatter正確解析這個日期字符串?

而不是試圖讓以前的句話有道理,這裏的一些代碼:

NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
[format setDateFormat:@"MMM dd, YYYY HH:mm"]; 

NSDate *now = [[NSDate alloc] init]; 

NSString *dateString = [format stringFromDate:now]; 

NSDateFormatter *inFormat = [[NSDateFormatter alloc] init]; 
[inFormat setDateFormat:@"MMM dd, YYYY HH:mm"]; 

NSDate *parsed = [inFormat dateFromString:dateString]; 

NSLog(@"\n" 
     "now:  |%@| \n" 
     "dateString: |%@| \n" 
     "parsed:  |%@|", now, dateString, parsed); 

當我運行這段代碼,我希望解析將包含相同的日期作爲現在而是我得到以下輸出:

 
now:  |2009-05-04 18:23:35 -0400| 
dateString: |May 04, 2009 18:23| 
parsed:  |2008-12-21 18:23:00 -0500| 

任何人有任何想法,爲什麼發生這種情況?

回答

9

您的問題是「YYYY」不是有效的ICU日期格式選項。你想要「yyyy」。

資本'Y'僅在與「年份周」選項一起使用時(即'''''''''''''''''')有效。

+0

賓果!這解決了它。 – 2009-05-05 01:40:00

相關問題