最近遇到一个时间的bug,时间转换相差了一年,现在是2020年12月份,结果时间转换后直接成了2021年12月份。而且在之前一直是没问题的,找了半天才发现是转换时间格式的问题。由于这个bug是年底的时候才会出现,所以希望看到的朋友们能记住。
通常在时间转换的时候我们会通过如下方式进行转换,转换的时候会传一个时间的格式如下边:YYYY-MM-dd
,这个格式之所以苹果爸爸给提供让用了,那么肯定是可以用的。但是它这个格式有一个bug
,就是年底的时候在时间转换的时候会在年份上多加一年的bug,所以平日里你是察觉不到的。所以在日期转换的时候记得一定要用yyyy-MM-dd
。
NSDateFormatter *testFormatter = [[NSDateFormatter alloc] init];
[testFormatter setDateFormat:@"yyyy-MM-dd"];//禁止使用YYYY-MM-dd格式
//从服务器拿到的时间值1451347200000,服务器上显示的时间是:29-12月-15
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[date longLongValue]/1000];
NSString *timeString = [testFormatter stringFromDate:confromTimesp];