iOS'dateFromString'返回一年

时间:2013-03-06 16:43:04

标签: ios objective-c nsdateformatter

我正在使用NSDateFormatter的dateFromString,但是当它被赋予字符串'2013-03-06'时,它会吐出NSDate为'2012-03-06 00:00:00 CST'。时间不重要。我将日期格式设置为输入和输出之间完全相同。

我有一个使用代码获取日期的对象:

NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
NSDate* currentDate = [[NSDate alloc] init];

[dateFormat setDateFormat:@"YYYY-MM-dd"];
[self setMyValue:[dateFormat stringFromDate:currentDate]];

然后此值用于在UIDatePicker上设置日期:

NSDate *date = [[[NSDate alloc] init] autorelease];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];

[dateFormat setDateFormat:@"YYYY-MM-dd"];

date = [dateFormat dateFromString:myFilter.myValue];

[datePicker setDate:date animated:YES];

我非常感谢任何关于我犯错的地方的指示。

3 个答案:

答案 0 :(得分:10)

您应该使用yyyy而不是YYYY

来自Data Formatting Guide

  

常见的错误是使用YYYY。 yyyy指定日历年   而YYYY指定ISO中使用的年份(“年度周”)   年周日历

答案 1 :(得分:1)

将YYYY格式更改为yyyy。

答案 2 :(得分:-1)

使用yyyy代替YYYY,以便在更改'年份时获得零错误。