我有几个日期字符串需要转换为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'
我在这里错过了什么吗?
答案 0 :(得分:12)
这是因为您没有将日期格式化程序的区域设置设置为特殊的en_US_POSIX
区域设置。很可能你的iPhone 5在24小时设置中有不同的设置。
每当解析固定格式字符串时,都需要设置特殊区域设置。