首页 > 神奇问题:时间戳转换成字符串 出现错误,只有15-12-27之后的错误。

神奇问题:时间戳转换成字符串 出现错误,只有15-12-27之后的错误。


这个时间戳本来是2015-12-27
但是打印出来是2016-12-27

时间戳:
1451145600

[formatter setDateFormat:@"YYYY-MM-dd"];
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
[formatter setTimeZone:timeZone];
[formatter stringFromDate:endDate]

你的格式化字符串里应该用小写的 yyyy 而非大写的 YYYY。大写的 YYYY 会格式化年份为 ISO周日历 中的年份,大部分时候是相同的,但是在一年的年末和年初的几天就可能会不同,详见维基百科。

A common mistake is to use YYYY. yyyy specifies the calendar year whereas YYYY specifies the year (of “Week of Year”), used in the ISO year-week calendar. In most cases, yyyy and YYYY yield the same number, however they may be different. Typically you should use the calendar year.

refs:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW4

【热门文章】
【热门文章】