2019-12-30 日期格式化误差一年的问题

先看测试代码

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    
    [self testDateFormate:@"yyyy-MM-dd HH:mm:ss"];
    [self testDateFormate:@"YYYY-MM-dd HH:mm:ss"];
    
}

-(void)testDateFormate:(NSString *)dateFormat{
    NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
    dateformatter.dateFormat = dateFormat;
    NSDate *date = [NSDate date];
    NSLog(@"%@", date);
    NSString *formattedString = [dateformatter stringFromDate:date];
    NSLog(@"%@",formattedString);
}

在看运行结果

2019-12-30 11:20:16.144959+0800 yyyyMMdd[10518:60717] Mon Dec 30 11:20:16 2019
2019-12-30 11:20:16.146873+0800 yyyyMMdd[10518:60717] 2019-12-30 11:20:16
2019-12-30 11:20:16.147184+0800 yyyyMMdd[10518:60717] Mon Dec 30 11:20:16 2019
2019-12-30 11:20:16.147473+0800 yyyyMMdd[10518:60717] 2020-12-30 11:20:16

总结

YYYY 表示的年分,会在年12月末的29,30,31, 多计算1年,不准确
用小写的yyyy转化年份,就可以了!

那么问题来了, 既然小写yyyy准确好用, 苹果为什么同时提供大写的YYYY,出发点是什么?

你可能感兴趣的:(2019-12-30 日期格式化误差一年的问题)