这似乎是iOS 10的错误。在iOS 8和9中都可以。
[NSDate date] .description的小时描述错误。它附加了24小时描述和12小时描述。我没有使用NSDateFormatter。只是默认设置。
在真实的iOS 10设备上,在“设置:
”中然后用:
NSLog(@"Date is %@", [NSDate date].description);
实际日志输出:
Date is 2016-11-14 44:14:57 AM +0000
预期产出:
Date is 2016-11-14 4:14:57 AM +0000
编辑(添加另一个例子):
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd hh:mm:ss a";
NSString *dateString = @"1985-04-12 7:20:50 PM";
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"Date is %@", date.description);
实际输出:
Date is 1985-04-12 1010:20:50 AM +0000
预期输出
Date is 1985-04-12 10:20:50 AM +0000
如果我将小时更改为24小时格式(HH):
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss a";
NSString *dateString = @"1985-04-12 7:20:50 PM";
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"Date is %@", date.description);
实际输出:
Date is (null)
预期产出:
Date is 1985-04-12 10:20:50 AM +0000
答案 0 :(得分:1)
我们也面临iOS 10.x的类似问题并使用
修复它NSLocale * POSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@“en_US_POSIX”]; dateFormatter.locale应该等于(POSIXLocale);