1

当我使用这个日期格式化程序时,如果我从日期 -> 字符串 -> 日期获得,它不会给我返回我开始的相同日期。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setFormatterBehavior:NSDateFormatterBehavior10_4];
[formatter setDateFormat:@"MMM d, YYYY hh:mm aaa"];

NSDate *date = [NSDate date];
NSString *string = [formatter stringFromDate:date];
NSDate *resultingDate = [formatter dateFromString:string];

我的测试生成了一个日期字符串Aug 24, 2010 01:00 PM。当反馈到dateFromString我得到2009-12-27 13:00:00。时间是对的,但日期全错了。

有人知道这里发生了什么吗?

4

1 回答 1

3

问题出在这句话上:

[formatter setDateFormat:@"MMM d, YYYY hh:mm aaa"];

将其更改为此(小写 y):

[formatter setDateFormat:@"MMM d, yyyy hh:mm aaa"];

它工作正常。

老实说,我不知道背后的代码有什么问题NSDateFormatter,但我只知道它可以工作。

于 2010-08-21T21:46:30.367 回答