美文网首页OC-开发案例收集iOS
iOS 15.4 获取本地当前时间12小时制的Bug

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

作者: iOS小武哥 | 来源:发表于2022-03-23 23:11 被阅读0次

    公司客户端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];
    

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

    相关文章

      网友评论

        本文标题:iOS 15.4 获取本地当前时间12小时制的Bug

        本文链接:https://www.haomeiwen.com/subject/pighjrtx.html