我有每当有新的远程通知时收到的字符串。我正在为我的后端使用解析。我检索到的字符串来自“createdAt”列。
我试过下面的代码:
var ca = "2015-07-03T03:16:17.220Z"
var dateFormater : NSDateFormatter = NSDateFormatter()
dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
let date = dateFormater.dateFromString(ca)
println(date)
但是 println 给了我 nil,我认为我的日期格式有问题。我怎样才能解决这个问题?
你错过了毫秒。因此:
dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
请注意,从日期字符串转换为NSDate
,你不应该引用Z
。如果你引用Z
,它将匹配文字Z
字符,但无法正确反映该日期字符串实际上是 Zulu/GMT/UTC。
如果您想创建反之亦然的格式化程序,请转换NSDate
对象到字符串,在这种情况下你应该引用Z
,但在这种情况下,您必须记住显式设置时区:
dateFormater.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
dateFormater.timeZone = NSTimeZone(forSecondsFromGMT: 0)
顺便说一句,别忘了设置locale
as per Apple 技术问答 1480 https://developer.apple.com/library/ios/qa/qa1480/_index.html.
dateFormater.locale = NSLocale(localeIdentifier: "en_US_POSIX")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)