2016-03-08 30 views
0

我有一個包含日期字段的JSON:在我的應用程序爲什麼我的日期解析器在Swift中不起作用?

"created_at":"2016-03-06T16:39:29.786Z" 

我在做這樣的:

let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-ddThh:mm:ss.SSSZ" 
let created_at = json["created_at"].string 
let crd = dateFormatter.dateFromString(created_at!) 
print(crd) //prints nil 

爲什麼會出現nil呢?

回答

2

您需要引用文字文本,並且您在小時內使用了錯誤的格式說明符。

必須引用T

hh適用於12小時格式,但您有24小時格式,即HH

所以,你想:

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 
+0

好了,但現在當我在做:'打印(created_at); print(crd)'我得到了兩個不同的值:'可選的(「2016-03-07T21:19:26.277Z」)''和'可選的(2016-03-07 21:19:26 +0000)'。這可能是什麼原因? – user3766930

+1

第一個是原始字符串,第二個是'NSDate'的日誌輸出。兩者都代表相同的日期。你爲什麼期望兩個輸出是相同的?你所看到的是正確的。 – rmaddy

+0

值得在標準QA1480'en_US_POSIX'建議下夾緊,以便您的手機不會將24小時格式轉換爲12小時? (雖然我已經投票確定) – Tommy

相關問題