先看测试代码
-(void)touchesEnded:(NSSet<UITouch *> *)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,出发点是什么?
网友评论