关于Objective C:NSDateFormatter提前一年打印日期

下面是我所拥有的。

1
2
3
4
5
6
7
NSString *dateString = @"08/27/2014 04:00:00 PM";
NSLog(@"dateString---%@", dateString);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/YYYY hh:mm:ss a"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
NSLog(@"dateFromString===%@", dateFromString);

下面是NSLog。

1
2
dateString---08-27-2014 04:00:00 PM
dateFromString===2013-12-22 13:00:00 +0000

在这里我没有弄错我在做什么。为什么打印日期是2013年,而日期也有错误?

实际上,我的日期字符串为8/27/2014 4:00:00 PM,格式化程序为M/dd/YYYY h:mm:ss a。仍然是同样的问题。


您的YYYY应该是YYYY

1
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];

只需测试一下,它就对我有用。

参考:链接