Я заменяю свой старый синтаксический код JSON на Swift Codable и немного запутался. Я предполагаю, что это не такой вопрос, как Codable, поскольку это вопрос DateFormatter.
Начать со структуры
struct JustADate: Codable {
var date: Date
}
и строка json
let json = """
{ "date": "2017-06-19T18:43:19Z" }
"""
теперь позволяет декодировать
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let data = json.data(using: .utf8)!
let justADate = try! decoder.decode(JustADate.self, from: data) //all good
Но если мы изменим дату так, чтобы она имела дробные секунды, например:
let json = """
{ "date": "2017-06-19T18:43:19.532Z" }
"""
Теперь он ломается. Даты иногда возвращаются с дробными секундами, а иногда и нет. То, как я его решал, было в моем картографическом коде, у меня была функция преобразования, которая пробовала оба dateFormats с дробными секундами и без них. Я не совсем уверен, как подойти к нему, используя Codable. Любые предложения?