Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Dateformatter更改日期的年份_Objective C_Ios_Date_Nsdateformatter - Fatal编程技术网

Objective c Dateformatter更改日期的年份

Objective c Dateformatter更改日期的年份,objective-c,ios,date,nsdateformatter,Objective C,Ios,Date,Nsdateformatter,我试图用dateformatter显示一个日期,但这个会更改日期的年份 方法如下: setLabelWithDate:(NSdate *)date{ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; [dateFormatter setTimeZone:gmt];

我试图用dateformatter显示一个日期,但这个会更改日期的年份

方法如下:

setLabelWithDate:(NSdate *)date{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
    [dateFormatter setTimeZone:gmt];    
    [dateFormatter setDateFormat:@"dd MMMM YYYY"];

    NSLog(@"Date : %@",date);
    NSLog(@"stringFromDate %@",[dateFormatter stringFromDate:date]);

    self.selectedDateLabel.text = [dateFormatter stringFromDate:date];
    [dateFormatter release];
}
这是控制台中显示的内容:

2012-05-04 13:08:50.442 MyAppli[3339:fb03] Date : 2012-12-30 00:00:00 +0000
2012-05-04 13:08:50.443 MyAppli[3339:fb03] stringFromDate 30 December 2013
我来了。dateFormatter将myDate添加一年,我真的不知道为什么。这种情况只发生在一年的最后两个日期(12月30日和31日)

谢谢你的帮助

亚历山大

使用

[dateFormatter setDateFormat:@"dd MMMM yyyy"]; // lowercase y

您可能应该检查并。

它使用yyyy来指定年份组件。一个常见的错误是使用YYYY。yyyy指定日历年,而yyyy指定ISO年-周日历中使用的年(年中的周)。在大多数情况下,yyyy和yyyy产生相同的数字,但它们可能不同。通常情况下,你应该使用日历年。惊人的答案。这只是发生在我身上;)为@Jonas Schnelli准备的一瓶葡萄酒