NSDateFormatter回归错误的一年

时间:2014-05-24 16:36:18

标签: objective-c

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

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

但他们中的一些人在错误的岁月中回来了。这是日志的示例。

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

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

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

1 个答案:

答案 0 :(得分:9)

问题是YYYYyyyy是两个完全不同的东西。您正在使用YYYY,正如docs告诉您的那样,{{1}}不一定与日历年相同。