NSDateFormatter dateFromString给出了错误的date
我已经在其他类似的post尝试了build议,没有用。 情况如下:
我有一个这样的NSString:
Fri November 18, 2011
我试图将其转换为这样的date:
NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"EE MMMM d, YYYY"]; NSDate *myDate = [df dateFromString: dateString];
但是由此产生的myDatevariables包含这个:
2010-12-31 00:00:00 +0000
有没有人有任何想法为什么从dateFromString中挑出错误的date? string是11月18日,转换date是12月31日…
感谢大家!
你需要使用yyyy
一年,而不是YYYY
。
从苹果引用 :
一个常见的错误是使用YYYY。 yyyy指定日历年,而YYYY指定ISO年份周历中使用的年份(“年份”)。 在大多数情况下,yyyy和yyyy的数字相同,但是可能不同。 通常你应该使用日历年。
而且要正确,你也必须把EE
改成EEE
。 虽然他们在我的testing中得到了同样的结果。
我认为你需要“EEE MMMM d,YYYY”,即三重E作为格式string。 如果这不起作用,我build议使用硬编码的string,更简单的date和格式来解决问题。 例如,请参阅NSDateFormatter不适用于该主题的更多提示。