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

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

时间戳:
1451145600

[formatter setDateFormat:@"YYYY-MM-dd"];
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
[formatter setTimeZone:timeZone];
[formatter stringFromDate:endDate]
阅读 3.1k
1 个回答

你的格式化字符串里应该用小写的 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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题