我已经在其他类似的帖子中尝试了这些建议但没有用。情况如下:
我有一个像这样的NSString:
Fri November 18, 2011
我试图将其转换为这样的日期:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EE MMMM d, YYYY"];
NSDate *myDate = [df dateFromString: dateString];
但是生成的myDate变量保存了这个:
2010-12-31 00:00:00 +0000
有没有人知道为什么从dateFromString中挑出错误的日期?该字符串是11月18日,转换日期是12月31日...
谢谢大家!
答案 0 :(得分:48)
您需要使用yyyy
年,而不是YYYY
。
常见的错误是使用YYYY。 yyyy指定日历年,而YYYY指定ISO年度日历中使用的年份(“年度周”)。在大多数情况下,yyyy和YYYY会产生相同的数字,但它们可能会有所不同。通常,您应该使用日历年。
为了更正,您还必须将EE
更改为EEE
。虽然他们在我的测试中产生了相同的结果。
答案 1 :(得分:1)
我认为您需要“EEE MMMM d,YYYY”,即三E作为格式字符串。如果这不起作用,我建议使用更简单的日期和格式的硬编码字符串来解决问题。有关该主题的更多提示,请参阅NSDateFormatter not working。