带编码的不同格式的解码日期

时间:2019-03-24 14:49:44

标签: ios swift nsdateformatter codable jsondecoder

我正在使用2个API(烦人地)以略有不同的格式返回时间戳。

当前,我支持以下格式

"postedOn":"2019-03-18T09:30:19.570Z"

我通过一个简单的扩展名

extension DateFormatter {
    static let iso8601DateFormat: DateFormatter = {
        let formatter = DateFormatter()
        formatter.calendar = Calendar(identifier: .iso8601)
        formatter.timeZone = TimeZone(secondsFromGMT: 0)
        formatter.locale = Locale(identifier: "en_US_POSIX")
        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX"
        return formatter
    }()
}

我的网络层用来解码响应。

我还必须使用的新API,返回的格式略有不同

"lastLogin":"2019-02-19T05:38:57Z"

这失败,并显示错误

  

日期字符串与格式化程序预期的格式不符。

不可能使API保持一致,而且我不确定如何处理两种情况而无需将其存储为字符串并在其他地方手动进行。

除了日期和小时/分钟,我实际上什么都不关心。之后的所有内容都不相关。

0 个答案:

没有答案