数据格式为此格式返回 nil "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"



好吧,我有这个从后端返回的特定原始字符串,这是一个日期字符串"2020-05-27T23:59:59.000+02:00"

我正在尝试使用以下代码格式化字符串:-

let passExpiresAtString =  "2020-05-27T23:59:59.000+02:00"
let df = DateFormatter()
df.locale = Locale(identifier: "en_US_POSIX")
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
session.passExpiresAt = df.date(from: passExpiresAtString)

所以,如果有人能固定我,我会很高兴,我在日期格式设置方面做错了什么。

感谢您的帮助。

或者将格式化程序的日历设置为ISO8601日历

let passExpiresAtString =  "2020-05-27T23:59:59.000+02:00"
let df = DateFormatter()
df.calendar = Calendar(identifier: .iso8601)
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
session.passExpiresAt = df.date(from: passExpiresAtString)

或者 - 更可靠 - 使用ISO8601DateFormatter

let passExpiresAtString =  "2020-05-27T23:59:59.000+02:00"
let df = ISO8601DateFormatter()
df.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
session.passExpiresAt = df.date(from: passExpiresAtString)

最新更新