NSDateFormatter的意外输出

时间:2013-02-18 03:28:53

标签: ios objective-c nsdateformatter

我一直在使用以下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"];

有关格式化程序无法正常工作的任何提示?

1 个答案:

答案 0 :(得分:5)

在iOS文档中,有这一行:

  

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

这就是为什么你得到AM / PM而不是24小时格式。

您可以通过覆盖NSDateFormatter

的区域设置来解决此问题
[dateFormatter setLocale:
 [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]] autorelease];