NSDateformatter 意外输出am/pm

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMddHHmmss"];//SSS a
NSString *dateStr = [dateFormatter stringFromDate: [NSDate date]];
NSLog(@"%@", dateStr);

iPhone15.4以上手机意外的输出 am/pm
其实只要设置下面2个,就能完美解决

dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
//或者 [NSLocale systemLocale]
dateFormatter.calendar = [NSCalendar calendarWithIdentifier: NSCalendarIdentifierGregorian];

https://developer.apple.com/library/archive/qa/qa1480/_index.html

红框里的内容指出,用户手动修改日历、修改12/24小时制都会导致Dateformatter输出不同的结果
这段话的意思是,如果你把日期转成字符串是希望展示给用户看的,那么使用用户设置的时间格式和日历是合理的,但是如果你是希望把日期返回给后端处理或者归档,那么就应该使用固定格式的日期字符串

参考:
https://www.jianshu.com/p/79465eb4e4c4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容