NSDateFormatter回归错误的一年

Jam*_*ite 6 objective-c

我正在使用一种非常基本的方法将日期转换为字符串.

+(NSString*)stringForDate:(NSDate*)date {
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"ddMMYYYY"];
    NSLog(@"%@",date);
    NSLog(@"%@",[dateFormat stringFromDate:date]);
    return [dateFormat stringFromDate:date];
}
Run Code Online (Sandbox Code Playgroud)

但其中一些人在错误的岁月里回来了.这是日志的示例.

2014-05-25 00:26:46.050 App Name[1868:60b] 2013-12-26 16:00:00 +0000
2014-05-25 00:26:46.051 App Name[1868:60b] 27122013
2014-05-25 00:26:46.051 App Name[1868:60b] 2013-12-27 16:00:00 +0000
2014-05-25 00:26:46.051 App Name[1868:60b] 28122013
2014-05-25 00:26:46.051 App Name[1868:60b] 2013-12-28 16:00:00 +0000
2014-05-25 00:26:46.052 App Name[1868:60b] 29122014
2014-05-25 00:26:46.052 App Name[1868:60b] 2013-12-29 16:00:00 +0000
2014-05-25 00:26:46.054 App Name[1868:60b] 30122014
Run Code Online (Sandbox Code Playgroud)

忽略这样的事实,即由于时区,这些日子似乎是一天之后 - 这是预期的.然而,所有投入的日期都是2013年,但有些字符串将在2014年回归.

任何帮助表示赞赏 - 它正在努力!

mat*_*att 9

问题是,YYYYyyyy是两个完全不同的事情.您正在使用YYYY,正如文档所告诉您的那样,它不一定与日历年相同.

  • @JamesWhite你[不是第一个人](http://arstechnica.com/apple/2013/01/ask-ars-why-will-apples-do-not-disturb-bug-fix-itself-next-周/)有这个问题:) (4认同)