[iOS] stringFromDate 方法导致时间多了一年的问题

    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年,所以才会出现这个奇葩的现象

你可能感兴趣的:([iOS] stringFromDate 方法导致时间多了一年的问题)