我有一个非常奇怪和令人困惑的问题。我找不到任何关于它的东西,这似乎是苹果的一个错误,但如果有人建议如何解决这个问题会有所帮助。 有些日期在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];
对此的任何帮助将不胜感激。
答案 0 :(得分:8)
我不知道它是否会改变,但你可以尝试
[formatter setDateFormat:@"yyyy:MM:dd"];
答案 1 :(得分:1)
在NSDateFormatter中," Y"和" y"指定可能在不同日期开始的不同年份。你想要" y"。
来自NSDateFormatter documentation:
常见的错误是使用YYYY。 yyyy指定日历年 而YYYY指定ISO中使用的年份(“年度周”) 年周历。在大多数情况下,yyyy和YYYY产生相同的结果 数字,但它们可能不同。通常你应该使用 历年。