我有几个需要转换为NSDates的日期字符串。
我的解析代码如下:

NSString *s = [pair objectForKey:@"nodeContent"];
NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZ"];
self.date = [f dateFromString:s];

上面的代码在我们测试过的所有设备和模拟器中都可以正常工作。
奇怪的是,当以上代码在运行iOS 6.1或7.0.x的任何iPhone 5上运行时,self.date = [f dateFromString:s];行每次都返回nil。

我已经检查过,字符串s存在,并且与可以正确解析日期的设备并排比较时,包含相同的字符。

这是一个示例日期字符串:
`2013-10-31T21:50:00-06:00'

我在这里想念什么吗?

最佳答案

这是因为您没有将日期格式化程序的语言环境设置为特殊的en_US_POSIX语言环境。 iPhone 5的24小时设置很可能具有其他设置。

每当您解析固定格式的字符串时,都需要设置特殊的语言环境。

10-05 21:50