【问题标题】:NSDateFormatter parsing date incorrectlyNSDateFormatter 解析日期不正确
【发布时间】:2010-08-16 09:32:20
【问题描述】:

我正在从代表日期的文本中提取字符串。它们看起来像这样:

Monday August 16, 2010 05:28 AM EST

我正在尝试使用 NSDateFormatter 解析它们。我已将其格式设置为:

[dateFormatter setDateFormat:@"EEEE MMMM d, YYYY h:mm a z"];

但是,这不起作用。对于我上面给出的示例,如果我将字符串转换为日期,然后将该日期转换为字符串,日期格式化程序将返回:

Monday December 28, 2009 5:28 AM EST

我做错了什么?

编辑:使用[dateFormatter setDateFormat:@"EEEE MMMM d, y h:mm a z"]; 格式时它似乎有效。奇怪……

【问题讨论】:

    标签: cocoa cocoa-touch nsdate nsdateformatter


    【解决方案1】:

    会,

    NSDateFormatter 使用 Unicode 标准来格式化日期。如您所见,“y”有效,但“YYYY”无效。如果您查看规范(在 Apple 文档中引用了几层,因此不容易找到),您会看到“Y”有这样的注释:“Year (of "Week of Year"),用于 ISO 年-周日历。可能与日历年不同。”

    Here is the link to the specification.

    我知道你已经自己修好了,但这可能有助于解释为什么“Y”不适合你。

    【讨论】:

      【解决方案2】:

      “y”或“yyyy”都可以。 “YYYY”不起作用。 详情请查看以下链接。

      situee.blogspot.com: NSDateFormatter setDateFormat YYYY return wrong year

      【讨论】:

        猜你喜欢
        • 2015-09-10
        • 1970-01-01
        • 2013-07-10
        • 1970-01-01
        • 2022-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-10
        相关资源
        最近更新 更多