OC-开发案例收集iOS

iOS 15.4 获取本地当前时间12小时制的Bug

2022-03-23  本文已影响0人  iOS小武哥

公司客户端App就在今天上午上线了,晚上的时候线上就发现问题了,问题出现的是系统是15.4,这个系统是在今年的3月16号更新的,然后本地时间格式是12小时制,代码获取的本地时间,就会有Bug:

NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *dateStr = [dateFormatter stringFromDate:date];
NSLog(@"%@",dateStr);
我们设置了@"yyyy-MM-dd HH:mm:ss",但是解析12制就会失败.
本质就是NSDateFormatter使用方法不遵守苹果开发规范导致的问题,大家可以看这个文档.
不知道会有多少个像我一样的自己挖的坑跳进去的.尴尬了...
从上面的那个文档可以看出,在处理时间使用NSDateFormatter需要设置:
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
dateFormatter.locale = [NSLocale systemLocale];

同时还需设置dateFormatter的日历格式:

dateFormatter.calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierISO8601];

代码规范很重要呀! 哎呀呀............

上一篇下一篇

猜你喜欢

热点阅读