2014-01-07 138 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