如何使用 swift 将其转换为 Date() "2021-07-05T22:26:51.159Z"



我认为这是一个ISO8601格式的时间戳。2021-07-05T22:26:51.559 z我正在尝试用swift 5中的ISO8601DateFormatter((进行转换。以下是我尝试过的:

let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = .withFullDate
//ISO8601DateFormatter().formatOptions = .withFractionalSeconds
let d = "2021-07-05T22:26:51.159Z" 
let date = dateFormatter.date(from: d)

结果:日期=2021-07-05 00:00:00 UTC天是对的,时间不是。我已尝试设置.withFractionalSeconds选项。没有帮助。

我应该如何转换此格式?

您可以使用标准日期格式化程序来实现这一点:

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
let date = dateFormatter.date(from: d)
print(date)

相关内容

最新更新