NSDateFormatter dateFromString给出错误的日期

swe*_*ves 17 iphone nsdateformatter ios

我已经在其他类似的帖子中尝试了这些建议但没有用.情况如下:

我有一个像这样的NSString:

Fri November 18, 2011
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为这样的日期:

    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"EE MMMM d, YYYY"];
    NSDate *myDate = [df dateFromString: dateString];
Run Code Online (Sandbox Code Playgroud)

但是生成的myDate变量保存了这个:

2010-12-31 00:00:00 +0000
Run Code Online (Sandbox Code Playgroud)

有没有人知道为什么从dateFromString中挑出错误的日期?该字符串是11月18日,转换日期是12月31日...

感谢大家!

det*_*zed 48

你需要使用yyyy一年,而不是YYYY.

来自Apple参考:

一个常见的错误是使用YYYY.yyyy指定日历年,而YYYY指定ISO年度日历中使用的年份("年度周").在大多数情况下,yyyy和YYYY会产生相同的数字,但它们可能会有所不同.通常,您应该使用日历年.

而且要正确你也必须EE改为EEE.虽然他们在我的测试中产生了相同的结果.