【问题标题】:Why can't I correctly parse this date string with NSDateFormatter?为什么我不能用 NSDateFormatter 正确解析这个日期字符串?
【发布时间】:2009-05-04 22:32:14
【问题描述】:

我正在尝试使用另一个具有相同格式的 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);

当我运行此代码时,我希望 parsed 包含与 now 相同的日期,但我得到以下输出:

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

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

【问题讨论】:

    标签: iphone cocoa cocoa-touch string-formatting nsdateformatter


    【解决方案1】:

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

    大写“Y”仅在与“一年中的周”选项一起使用时有效(即“'Y'的'周'w')。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2015-03-20
      相关资源
      最近更新 更多