我正面临着NSDateFormatter的错误(?)。首先,这是我用来将当前NSDate
作为NSString
的方法(以不那么容易阅读的格式转换,因为它被发送到Web服务):
+ (NSString *) nowToUTCDate {
NSDate *now = [NSDate date];
NSDateFormatter* df_utc = [[NSDateFormatter alloc] init];
[df_utc setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[df_utc setDateFormat:@"yyyyMMddHHmmss"];
return [df_utc stringFromDate:now];
}
在iOS< = 7.0.4上,结果给了我:20140307203040
(即使我使用12h格式)。
在我的iPhone(iOS 7.0.6)上,结果为:20140307083346 PM
(仅当我使用12h格式时)。
轰隆隆,出现“PM”!为什么?我使用HH
字符串明确要求24小时格式(如here所述)。
作为一种解决方法,我写了这个解决方案:
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[df_utc setLocale:enUSPOSIXLocale];
这是Apple在上一版iOS中引入的错误还是我误解了某些内容?
感谢您的帮助!