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,例如:
异常时间格式最终在这个地方找到了答案,意思是如果用户设置了12/24时制的话,NSDateFormatter会把你的format string改写掉,重现条件应该是需要更改手机语言、地区、日历等设置(繁体?改成台湾、香港试试?),然后更改时制,我没有测试。
像这样给DateFormatter设置统一的Locale,然后就不管用户怎么改都是按照这个Locale为基准:
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormat setLocale:locale];
网友评论