在swift中使用NSDateFormatter时,我得到零
这是我的代码:
println(myStringDate) // 2015-02-26T17:46:34.000Z let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "YYYY-MM-DDTHH:mm:ss.sssZ" let myDate = dateFormatter.dateFromString(myStringDate) println(myDate) // nil
为什么零? 我究竟做错了什么 ?
你的问题是你如何设置date格式。 因为在你的string中有一个T
,你需要“逃避”它并且说它不应该影响date的格式。
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
也正如你所看到的,我已经把sss
改成了SSS
,代表了毫秒,也把YYYY
改成了小写yyyy
也和DD
。 在Dateformatstring中使用大写和小写字母时,必须非常小心。
在评论中检查@HotLicks链接,其中显示dateformat用法的一个很好的概述。
我知道要迟到了,但是
dateFormatter.dateFormat = "YYYY-MM-DD'T'HH:mm:ss.sss'Z'"
应该
dateFormatter.dateFormat = "YYYY-MM-DD'T'HH:mm:ss.SSS'Z'"
因为,
1)
ss - seconds SSS - fractional second sss != SSS
2)
T -> 'T'; S -> 'S'
和不错的教程