iOS关于时间,NSDateFormatter中设置@"yyyy"和设置@"YYYY"的时间的问题

Edision 发布于 2014年01月01日
无人欣赏。

最近在项目中出现时间设置的问题,NSDateFormatter中设置@"YYYY" 的时候会出现时间不准,改成@"yyyy" 就没问题,请大家帮我看看。

共7条回复
Edision 回复于 2014年01月01日

第一次发帖,请大家给我点信心呀!

tinyfool 回复于 2014年01月01日

@Edision 仔细看下帮助,这里应该不会是大小写不敏感的吧?

langhua9527 回复于 2014年01月01日

楼主是网易的么。。有道词典的么。。。

adad184 回复于 2014年01月01日

昨天正好在微博上看到有个提到了这个问题

YYYY和yyyy在时间的计算上是有点区别的

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html

It uses yyyy to specify the year component. 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.

年份如果用大Y会是这周的年份,小y才是标准的年份 例如2013年12月29号开始,如果用大Y的话就是2014年的第一周了,年份会转成2014

adad184 回复于 2014年01月01日

yyyy和YYYY只有在年末那几天会有所不同 就楼上说的29号的问题。

If 1 January is on a Monday, Tuesday, Wednesday or Thursday, it is in week 01. If 1 January is on a Friday, Saturday or Sunday, it is in week 52 or 53 of the previous year (there is no week 00). 28 December is always in the last week of its year.

如果1月1号是周1到周四 那么这一周就算是这一年的第一周 反之则算到上一年。

所以从29号-31号都属于2014年的第一周

Edision 回复于 2014年01月03日

谢谢大家的帮助!!!

Edision 回复于 2014年01月03日

@adad184 谢谢,明白了

登录 或者 注册