[iOS] stringFromDate 方法导致时间多了一年的
2018-12-24 本文已影响28人
雨影
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *nowDate = [NSDate date];
NSString *nowDateStr = [formatter stringFromDate:nowDate];
NSDate *returnDate = [nowDate dateByAddingTimeInterval:24*60*60*29];
NSString *returnDateStr = [formatter stringFromDate:returnDate];
DLog(@"%@",returnDateStr)
如果今天是2018年12月1号
结果会出现怎样的情况呢? 计算29天之后的时间应该是2018-12-30
521543656376_.pic.jpg
也就是说 NSDate 显示的是正确的2018年12月30号
但是用stringFromDate 方法之后,就会奇葩的多了一年
问题出现在哪里呢....
其实出现在YYYY-MM-dd HH:mm:ss这里
如果改成yyyy-MM-dd HH:mm:ss,就解决了,一切 ok...
原因是
要把[dateformatter setDateFormat:@"YYYY年MM月dd日"];中的YYYY改成yyyy就可以了,YYYY是以week为单位的,这周周末是2019年,所以才会出现这个奇葩的现象