5

我正在使用 NSDateFormatter,问题在于它的一致性。如果我使用 kCFDateFormatterMediumStyle,它在模拟器中给出的格式为“2009 年 11 月 26 日”,但在设备上给出“2009 年 11 月 26 日”。

现在我有一个问题,这个 NSFormatter 在不久的将来是值得信赖的方式还是来自苹果的更新可以再次改变风格?

4

2 回答 2

17

虽然上面提到的其他答案在技术上是正确的,但它并没有为您提供您正在寻找的解决方案。虽然 NSDateFormatter 默认使用用户语言环境(因此不会给您有用的结果),但您可以请求特定的语言环境以获得一致的结果:

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];

NSLocale *en_US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[frm setLocale:en_US];
[en_US release];
于 2009-11-26T11:58:13.177 回答
3

NSDateFormatter 根据设备上的国际设置将日期格式化为用户的偏好。因此,您永远不能指望这个字符串是一致的,因为日期在世界范围内的显示方式有很多种。

我发现将日期格式化为字符串(用于提供给网络服务器等)的最佳方法是使用 NSDateComponents 并将它们转换为字符串。

于 2009-11-26T11:49:07.593 回答