首页 > 解决方案 > 如何将 JSON 对象中返回的 mySQL 日期时间转换为 Swift 日期?

问题描述

我有一个 JSON 对象,其中有一个 mySQL 日期时间,我需要在 Swift 中对其进行解码并将其与另一个日期进行比较。如何将此 mySQL 日期时间转换为 Swift 日期?

以下是 JSON 对象中返回的内容:

{"startDate": "Sun, 02 Aug 2020 00:00:00 GMT"}

这就是我们尝试解码它的方式:

struct jsonDate: Codable {
    let startDate: String
}

let tempDate = try JSONDecoder().decode(jsonDate.self, from: data)
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let previousSunday = dateFormatter.date(from: tempDate.startDate)!

标签: mysqljsonswiftdatedatetime

解决方案


根据您为 JSON 提供的字符串,您在格式化程序上设置的日期格式不正确。您设置的格式与 ISO-8601 格式的字符串匹配,例如

2020-02-08 00:00:00 Z

但你的字符串需要像这样的格式

E, dd MMM yyyy HH:mm:ss ZZZZ

反而。


推荐阅读