记录一种NSDateFormatter stringFromDate的异常

NSDateFormatter* dateFormat = [[NSDateFormatteralloc] init];

 [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString* dateString = [dateFormat stringFromDate:date];

通常dateString的格式都是正确的,但是一部分用户dateString的格式不是yyyy-MM-dd HH:mm:ss,例如:

记录一种NSDateFormatter stringFromDate的异常_第1张图片
异常时间格式

最终在这个地方找到了答案,意思是如果用户设置了12/24时制的话,NSDateFormatter会把你的format string改写掉,重现条件应该是需要更改手机语言、地区、日历等设置(繁体?改成台湾、香港试试?),然后更改时制,我没有测试。

像这样给DateFormatter设置统一的Locale,然后就不管用户怎么改都是按照这个Locale为基准:

NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];

 [dateFormat setLocale:locale];

你可能感兴趣的:(记录一种NSDateFormatter stringFromDate的异常)