一尘不染

在Swift中将ISO8601字符串解析为日期

swift

我从声称的API获取下一个字符串

所有日期格式均为ISO8601。

我正在尝试下一个代码:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
let updatedAtStr = "2016-06-05T16:56:57.019+01:00"
let updatedAt = dateFormatter.date(from: updatedAtStr)

不幸的是,结果 updatedAt 为nil


阅读 273

收藏
2020-07-07

共1个答案

一尘不染

您的日期格式不正确,您需要考虑毫秒。

let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"

let updatedAtStr = "2016-06-05T16:56:57.019+01:00"
let updatedAt = dateFormatter.date(from: updatedAtStr) // "Jun 5, 2016, 4:56 PM"

需要澄清的是.SSS,在日期格式中添加可以解决此问题。

2020-07-07