使用formatter从字符串中获取nil日期

时间:2017-05-09 06:27:21

标签: ios swift nsdate nsdateformatter

我正在使用此代码将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

为什么会这样?这是相同的格式,但我没有了

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

您需要更改时间格式;

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

enter image description here