NSDateFormatter包括stringFromDate中的冗余“PM”:在iOS 7.0.6上

时间:2014-03-07 20:47:59

标签: ios iphone objective-c nsdateformatter

我正面临着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中引入的错误还是我误解了某些内容?

感谢您的帮助!

0 个答案:

没有答案