在swift中使用NSDateFormatter时我得到了nil

Che*_*rif 1 nsdate nsdateformatter ios swift

这是我的代码:

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
Run Code Online (Sandbox Code Playgroud)

为什么没有?我究竟做错了什么 ?

Chr*_*örz 7

您的问题是如何设置日期格式.因为T你的字符串中有一个,你需要"逃避"它并说它不应该影响日期的格式.

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
Run Code Online (Sandbox Code Playgroud)

同样如你所见,我已经改变了代表毫秒的sssto to SSS,并且将年份YYYY改为小写yyyy也与...相同DD.您必须非常小心,何时在Dateformat字符串中使用大写和小写字母.

检查注释中的@HotLicks链接,其中显示了dateformat用法的精彩概述.