我正在尝试使用另一个具有相同格式的NSDateFormatter解析由NSDateFormatter生成的字符串。

下面是一些代码,而不是试图使前面的句子有意义:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *now = [[NSDate alloc] init];

NSString *dateString = [format stringFromDate:now];

NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *parsed = [inFormat dateFromString:dateString];

NSLog(@"\n"
      "now:        |%@| \n"
      "dateString: |%@| \n"
      "parsed:     |%@|", now, dateString, parsed);


当我运行此代码时,我希望解析的日期将与现在相同,但是我得到以下输出:

现在:| 2009-05-04 18:23:35 -0400 |
dateString:| 2009年5月4日18:23 |
解析:| 2008-12-21 18:23:00 -0500 |


有人知道为什么会这样吗?

最佳答案

您的问题是“ YYYY”不是有效的ICU日期格式选项。您想要“ yyyy”。

大写字母“ Y”仅在与“年份的周”选项(即“ Y”的“周”,“ w”)一起使用时才有效。

关于iphone - 为什么我不能使用NSDateFormatter正确解析此日期字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/822417/

10-13 04:00