2

我一直在使用以下 NSDateFormatter 代码来格式化我的日期字符串,输出如下:'2013-02-18 03:23:32.928000 +0000'

这一直有效,直到添加了使用欧洲 iPhone 的用户,其中输出更改为:'2013-02-18 02:00:40 AM.118000 +0000'

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];    
[dateFormatter setTimeZone:timeZone];    
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSSSSS Z"];

关于格式化程序为什么不能始终如一地工作的任何提示?

4

1 回答 1

5

在 iOS 文档中,有这一行:

在 iOS 中,用户可以覆盖默认的 AM/PM 与 24 小时时间设置。这可能会导致 NSDateFormatter 重写您设置的格式字符串。

这就是为什么您使用 AM/PM 而不是 24 小时格式的原因。

您可以通过覆盖NSDateFormatter.

[dateFormatter setLocale:
 [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]] autorelease];
于 2013-02-18T03:33:02.497 回答