UIDatePicker每年添加一个

我有一个非常奇怪和令人困惑的问题。 我找不到任何关于它的东西,这似乎是苹果的一个错误,但如果有人建议如何解决这个问题,那将会有所帮助。 有些日期使用UIDatePicker在年份中添加1,似乎永远不会低于12月27日。 我已经回去几年试图找到一种模式。 这里有些例子:

Any date picked >= December 28th in 2014 changes to 2015 >= 29th in 2013 -> 2014 >= 30th in 2012 -> 2013 2011 (issue doesn't occur) >= 26th in 2010 -> 2011 >= 27th in 2009 -> 2010 >= 28th in 2008 -> 2009 >= 30th in 2007 -> 2008 = 31st in 2006 -> 2007 2005 (issue doesn't occur) >= 26th in 2004 -> 2005 >= 28th in 2003 -> 2004 >= 29th in 2002 -> 2003 >= 30th in 2001 -> 2002 = 31st in 2000 -> 2001 = 31st in 1999 -> 2000 >= 27th in 1998 -> 1999 >= 28th in 1997 -> 1998 >= 29th in 1996 -> 1997 = 31st in 1995 -> 1996 1994 (issue doesn't occur) 

希望这不会太混乱。 我似乎无法找到明确的模式,也无法弄清楚如何解决这个问题。 这是我用来从选择器中检索日期的代码:

 NSString *date; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"YYYY-MM-dd"]; date = [formatter stringFromDate:datePicker.date]; 

任何有关这方面的帮助将不胜感激。

我不知道它会改变什么,但你可以试试

[formatter setDateFormat:@"yyyy:MM:dd"];

在NSDateFormatter中,“Y”和“y”指定可能在不同日期开始的不同年份。 你想要“y”。

从NSDateFormatter文档 :

一个常见的错误是使用YYYY。 yyyy指定日历年,而YYYY指定ISO年度日历中使用的年份(“年度周”)。 在大多数情况下,yyyy和YYYY会产生相同的数字,但它们可能会有所不同。 通常,您应该使用日历年。