2009-05-04 75 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