【问题标题】:Hardware-dependent NSDateFormatter dateFromString: bug (returns nil)硬件相关的 NSDateFormatter dateFromString:错误(返回 nil)
【发布时间】:2013-11-03 21:33:36
【问题描述】:

我有几个日期字符串需要转换为 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'

我错过了什么吗?

【问题讨论】:

标签: ios nsdate nsdateformatter iphone-5


【解决方案1】:

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

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

【讨论】:

  • 谢谢。我添加了[f setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]]; 行,现在可以使用了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多