2014-01-07 97 views
0

我需要检查某些项目的日期。我在读从JSON文件,看起来像一个字符串:解析包含'T'和+时区偏移的日期字符串

"revisionDate":"2013-08-28T13:07:53+00:00" 

当我尝试格式化

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-d HH:mm:ssZ"]; 
NSDate *date = [dateFormat dateFromString:revisionDateTime]; 

date始终是零。我认为这是因为那个时间戳字符串中的T。我不知道如何处理它,并且似乎没有提及如何(至少我可以找到),在the reference I'm using

关于如何处理这个问题的任何想法?

+0

你确认'revisionDate'是一个'NSString'吗? – zeantsoi

+0

它不只是“T”,它也是时区偏移位。 [将ISO 8601时间戳转换为NSDate:如何处理UTC时间偏移?](http://stackoverflow.com/questions/5185230/converting-an-iso-8601-timestamp-into-an -sdate-how-do-one-deal-the-utc) –

回答

2

尝试修改NSDateFormatter实例占T

[dateFormat setDateFormat:@"yyyy-MM-dd T HH:mm:ssZZZZ"]; 

您可能还需要考虑封装文本字符串值(在这种情况下,破折号,空格,冒号和T)引号之间:

[dateFormat setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZ"] 
+0

你是一位先生(或女士),非常出色。谢谢! – easythrees

+0

由于这个答案工作,你会好心[接受它是正确的](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)? – zeantsoi

+0

恰恰在1分钟:) – easythrees