NSDateFormatter解析日期不正确
问题描述:
我从表示日期的文本中提取字符串。他们是这样的:NSDateFormatter解析日期不正确
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"];
。奇怪...
答
Will,
NSDateFormatter使用Unicode标准格式化日期。正如你发现的那样,“y”起作用,但“YYYY”不起作用。如果你看到规范(在苹果文档中引用了几个层次,所以不容易找到),你会看到“Y”有这样的注释:“ISO年周中使用的年份日历可能与日历年不同。“
Here is the link to the specification.
我知道你已经自己修复它,但是这可能有助于解释为什么“Y”并没有为你工作。
答
“y”或“yyyy”即可。 “YYYY”不起作用。 查看以下链接以了解详细信息。
situee.blogspot.com: NSDateFormatter setDateFormat YYYY return wrong year