如何使用 swift 将此“2021-07-05T22:26:51.159Z”转换为 Date()
How do I convert this, "2021-07-05T22:26:51.159Z" to Date() with swift
我认为这是 ISO8601 格式的时间戳。
2021-07-05T22:26:51.159Z
我试图在 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)
我认为这是 ISO8601 格式的时间戳。 2021-07-05T22:26:51.159Z 我试图在 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)