2013-01-09 56 views
0

我有一个代码:使用NSDateFormatter dateFromString

NSString *dateStr = [currentElementValue stringByRemovingNewLinesAndWhitespace]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"EE, dd MMM yyyy hh:mm:ss ZZ"]; 

,我从服务器接收日期,像字符串:

Tue, 08 Jan 2013 13:21:54 +0000 

但这里是我的问题,当我使用:[dateFormat dateFromString:dateStr]

Mon, 07 Jan 2013 10:31:30 +0000 converted to 07-01-2013 

Wed, 02 Jan 2013 15:12:57 +0000 无法转换。

任何人都有任何线索为什么会发生这种情况?

任何帮助,将不胜感激。 :)

+0

查看日期格式字符串的描述(可从NSDateFormater描述中使用链接链访问)。当你使用“HH”时你使用了“hh”。 –

+0

omg!它真的解决了我的问题,只是改变了HH,并且它被解决了。 – iremk

+0

@HotLicks哦,你快点! (直到发布我的答案才看到评论。)让它成为你的答案。 – 2013-01-09 20:37:37

回答

2

This answer详细描述所有格式说明符。 hh代表“小时(1-12,零填充)” - 所以你不能在这里写15h。如果您希望使用24小时时间格式,请改为使用HH

[dateFormat setDateFormat:@"EE, dd MMM yyyy HH:mm:ss ZZ"]; 
+0

另一个问题在这里(我正在处理一些rss提要):任何人都可以找出这个字符串的格式:'2013-01- 07T08:23:00.001 + 02:00'? – iremk

+0

@iremk - 取决于您的iOS版本。对于旧版本,在解析之前必须从字符串中删除最后的“:”。使用[iOS 6](http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns),您可以使用“ZZZZZ”。 –

相关问题