第一種方法在轉(zhuǎn)時間戳?xí)r使用的格式是:YYYY-MM-dd
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd"];
//從服務(wù)器拿到的時間值1451347200000,服務(wù)器上顯示的時間是:29-12月-15
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[date longLongValue]/1000];
NSString *timeString = [formatter stringFromDate:confromTimesp];
打斷點輸出后顯示的是:2016-12-29
第二種方法的時間戳格式是:yyyy-MM-dd
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
//從服務(wù)器拿到的時間值1451347200000,服務(wù)器上顯示的時間是:29-12月-15
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[date longLongValue]/1000];
NSString *timeString = [formatter stringFromDate:confromTimesp];
打斷點輸出后顯示的是:2015-12-29
可以看到同一天打印的日期差距一年,這個bug太惡心,而且還是日期在年末的情況下才出現(xiàn)的。
查了下YYYY-MM-dd和yyyy-MM-dd的區(qū)別,以下僅供參考:
“YYYY format” 是 “ISO week numbering system”,“yyyy format” 是 “Gregorian Calendar”。
以后處理時間戳可要注意了要使用小寫的yyyy就行了,不然這個bug可以會讓你背大鍋的。