无法使用NSDateFormatter解析日期

时间:2010-05-10 06:41:06

标签: iphone parsing nsdate nsdateformatter

我正在获取RSS,其中我收到以下日期戳:

2010-05-10T06:11:14.000Z

现在我使用NSDateFormatter来解析这个日期时间戳。

[parseFormatter setDateFormat:@"yyyy-MM-dTH:m:s.z"];

但是如果只删除它适用于日期[parseFormatter setDateFormat:@"yyyy-MM-d"];的时间戳部分它不能正常工作但是如果我添加剩下的东西它会返回nil。

有什么想法吗?

提前致谢....

2 个答案:

答案 0 :(得分:27)

您需要为d,H,m,s

解析零填充值

您需要将文字T转义为'T'

您需要使用SSS

解析秒的小数部分

您可以接受带Z的文字'Z'或使用大写Z来尝试解析时区,但RSS使用单独的标准。

@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

Date Format Patterns

答案 1 :(得分:0)

从记忆中我过去也遇到过这个问题。有几件事要尝试:

  1. 用空格替换RSS Feed中的“T”(显然也会更改日期格式字符串)。

  2. 您的RSS Feed已填充数字,而您的格式字符串则没有。试一试“yyyy-MM-ddTHH:mm:ss.Z”。根据这个链接,“z”应该被限制。 http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/

  3. 从RSS源中删除时区信息并手动解析。我似乎记得这给我带来了麻烦。