2

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

我有一个使用代码设置日期的对象:

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];

任何关于我犯错的地方都将不胜感激。

4

3 回答 3

10

你应该使用yyyy而不是YYYY.

来自数据格式化指南

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

于 2013-03-06T16:46:19.043 回答
1

将格式中的 YYYY 更改为 yyyy。

于 2013-03-06T16:50:00.437 回答
-1

在更改“年份”时使用yyyy代替YYYY, 来获得零错误。

于 2016-11-08T10:15:44.717 回答