刚刚发现 NSDateFormatter 停止识别 24 小时格式的 AM/PM。我的代码是
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy MM dd HH:mma";
NSDate *date1 = [dateFormatter dateFromString:@"2015 02 11 12:30PM"];
NSLog(@"%@", date1);
NSDate *date2 = [dateFormatter dateFromString:@"2015 02 11 13:30PM"];
NSLog(@"%@", date2);
我得到的输出显示相同的日期是:
2015-12-24 15:38:54.234 xyz[580:88238] 2015-02-11 07:00:00 +0000
2015-12-24 15:38:54.235 xyz[580:88238] 2015-02-11 07:00:00 +0000
但在我将 XCode 更新到 7.2 并将 iPod 更新到 9.2 之前,它可以正常工作。如果这是 iOS 9.2 错误,请告诉我。
最佳答案
13:30PM
没有意义。使用 24 小时制或AM
/PM
。
特别是 13:30 PM
在使用 24 小时制时不是有效时间。
解决方案:从日期格式化程序中删除 PM
并删除 a
。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy MM dd HH:mm";
NSDate *date1 = [dateFormatter dateFromString:@"2015 02 11 12:30"];
NSLog(@"%@", date1);
NSDate *date2 = [dateFormatter dateFromString:@"2015 02 11 13:30"];
NSLog(@"%@", date2);
正确输出
2015-12-24 11:42:43.420 Flip[3080:312362] 2015-02-11 11:30:00 +0000
2015-12-24 11:42:43.422 Flip[3080:312362] 2015-02-11 12:30:00 +0000
(时差导致此处偏移一小时)
关于ios - NSDateFormetter iOS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34451150/