我从表示日期的文本中提取字符串。它们看起来像这样:
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"];
似乎有效。奇怪...
答案 0 :(得分:2)
威尔
NSDateFormatter使用Unicode标准格式化日期。正如你所发现的,“y”有效,但“YYYY”却没有。如果您看到规范(在Apple文档深处引用了几个层,那么不容易找到),您会看到“Y”有这样的说明:“年份(”年份“),用于ISO年 - 周日历。可能与日历年不同。“
Here is the link to the specification.
我知道你自己已经修好了,但这可能有助于解释为什么“Y”不适合你。
答案 1 :(得分:0)
“y”或“yyyy”没问题。 “YYYY”不起作用。 请查看以下链接以获取详细信息。
situee.blogspot.com: NSDateFormatter setDateFormat YYYY return wrong year