硬件依赖的NSDateFormatter dateFromString:bug(返回nil)
我有几个datestring,我需要转换为NSDates。 我的parsing代码如下:
NSString *s = [pair objectForKey:@"nodeContent"]; NSDateFormatter *f = [[NSDateFormatter alloc] init]; [f setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZ"]; self.date = [f dateFromString:s];
上面的代码在我们testing过的所有设备和模拟器中工作正常。 奇怪的是,当上面的代码运行在任何运行iOS 6.1或7.0.x的iPhone 5上时, self.date = [f dateFromString:s];
每次都返回零。
我已经检查过,并且strings
存在,并且与正确parsingdate的设备并排比较时包含相同的字符。
这是一个datestring示例:`2013-10-31T21:50:00-06:00'
我在这里错过了什么?
这是因为您没有将date格式化程序的语言环境设置为特殊的en_US_POSIX
语言环境。 很可能你的iPhone 5的24小时设置有不同的设置。
无论何时parsing固定格式的string,都需要设置特殊的语言环境。