使用格式化程序从字符串中获取零日期

getting nil date from string using formatter

我正在使用此代码将 String 日期数组转换为 Date

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
for i in 0 ..< data.count {
     let time = data[i]
     let ft_date = time["ft_date"] as! String
     print(ft_date)
     let dateF = formatter.date(from: ft_date)
     print(dateF)
}

这是控制台的输出

2017-04-09T00:00:00
Optional(2017-04-08 19:30:00 +0000)
2017-04-08T00:00:00
Optional(2017-04-07 19:30:00 +0000)
2017-04-05T00:00:00
Optional(2017-04-04 19:30:00 +0000)
2017-04-01T00:00:00
Optional(2017-03-31 19:30:00 +0000)
2017-04-01T00:00:00
Optional(2017-03-31 19:30:00 +0000)
2017-04-01T00:00:00
Optional(2017-03-31 19:30:00 +0000)
2017-03-22T00:00:00
nil

为什么会这样?它是相同的格式,但我得到的是 nil

您需要更改时间格式;

formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"

您是否居住在夏令时在午夜 2017-03-22 更改的国家/地区?

如果是,这可能是日期不存在的原因。