我正在将日期字符串转换为NSDate
,但我不断获得nil
:
let strDate = self.DateList[0] // "2015-10-06T15:42:34Z"
print(strDate)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
print (dateFormatter.dateFromString(strDate))
运行结果是:
2016-05-18T14:00:54.466Z
nil
我不知道为什么,有什么建议吗?
答案 0 :(得分:1)
你几乎拥有它 - 只需要逃脱'Z':
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
答案 1 :(得分:1)
2016-05-18T14:00:54.466Z
中有print(strDate)
个
所以,您的格式应为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
// --------------------------------- 2016-05-18 T 14:00:54.466 Z
----
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
print (dateFormatter.dateFromString(strDate))
答案 2 :(得分:1)
更安全的解决方案是使用ZZZZZ
作为时区说明符,或者您可以使用X
说明符。
Z
和X
之间的差异基本上是X
允许在时间偏移为零时使用文字Z.见Date Field Symbol Table
当然,你也错过了毫秒部分(.SSS
)。如果你有两种格式,一种是毫秒,一种是毫秒,你必须使用两种不同的格式化器。