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,例如:

異常時間格式
最終在這個地方找到了答案,意思是如果用戶設(shè)置了12/24時制的話,NSDateFormatter會把你的format string改寫掉,重現(xiàn)條件應(yīng)該是需要更改手機語言、地區(qū)、日歷等設(shè)置(繁體?改成臺灣、香港試試?),然后更改時制,我沒有測試。
像這樣給DateFormatter設(shè)置統(tǒng)一的Locale,然后就不管用戶怎么改都是按照這個Locale為基準(zhǔn):
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
?[dateFormat setLocale:locale];