Ios 硬件相关的NSDateFormatter dateFromString:bug(返回nil)
我有几个日期字符串需要转换为NSDates。 我的解析代码如下所示:Ios 硬件相关的NSDateFormatter dateFromString:bug(返回nil),ios,nsdate,nsdateformatter,iphone-5,Ios,Nsdate,Nsdateformatter,Iphone 5,我有几个日期字符串需要转换为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]; 以上代码在我们测试过的所有设备和模拟器中都能正常工作。 奇怪的
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\u US\u POSIX
区域设置。最有可能的是,您的iPhone 5在24小时设置中有不同的设置
每当解析固定格式的字符串时,都需要设置特殊的语言环境。quantify any。这可能是区域设置的问题吗?可能是重复的,谢谢。我添加了一行[f setLocale:[NSLocale localeWithLocaleIdentifier:@“en_US_POSIX”]代码>现在就可以了。