iOS15.4以上NSDateformatter12小时制日期格式问题及解决

最近有客户反应App点击提交按钮报错的问题,经过分析发现问题是因为时间格式的问题导致的,客户系统iOS15.4以上,系统时间格式设置的是12小时制
如下代码

NSDate *date = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *dateStr = [dateFormatter stringFromDate:date];
NSLog(@"%@",dateStr);

在iOS15.4以下打印的结果是 2023-03-01 13:13:56
在iOS15.4及其以上的系统打印结果为 2023-03-01 1:13:56 PM

解决方法

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    dateFormatter.locale =  [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
    dateFormatter.calendar =  [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierISO8601];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
posted @ 2023-03-01 13:16  qqcc1388  阅读(362)  评论(0)    收藏  举报