1

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

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

我究竟做错了什么?

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

4

2 回答 2

2

将要,

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

这是规范的链接。

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

于 2010-08-18T11:41:00.733 回答
0

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

siteee.blogspot.com:NSDateFormatter setDateFormat YYYY 返回错误的年份

于 2011-02-21T03:55:32.097 回答