好吧,我有这个从后端返回的特定原始字符串,这是一个日期字符串"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)