iOS版“dateFromString”返回关闭一年(iOS 'dateFromString

2019-08-17 08:01发布

我现在用的是NSDateFormatter的dateFromString,但是当它被赋予字符串“2013年3月6日”它吐出来“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];

在这里我犯错误的任何指针将不胜感激。

Answer 1:

您应该使用yyyy而不是YYYY

从数据格式指南 :

一个常见的错误是使用YYYY。 YYYY指定历年而YYYY指定年(“创周”),在ISO年周历使用



Answer 2:

在格式YYYY改变YYYY。



Answer 3:

使用yyyy而不是YYYY ,同时改变“年”,以获得零误差。



文章来源: iOS 'dateFromString' Returning One Year Off