我正在尝试通过Alamofire从JSON获取日期到Swift 4中的结构。我已经设置了一个与JSON格式匹配的日期格式化程序,但是出现了一个错误:Date string does not match format expected by formatter
我正在使用以下代码:
struct AgentEvent: Decodable {
let callref: Int?
let repdate: Date?
let parked: Bool?
let company: String?
}
let decoder = JSONDecoder()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
decoder.dateDecodingStrategy = .formatted(dateFormatter)
self.events = try! decoder.decode([AgentEvent].self, from: data!)
使用的示例JSON(在浏览器中运行方法时确认)是:
{"callref":142,
"company":"Test Company Ltd",
"repdate":"2019-01-25T17:21:00",...
我对代码进行了断点检查,以查看要尝试解码的数据(如果已在某处进行了翻译)以及日期格式正在传递中,它是: 据我所知,“ 2019-01-25T17:21:00”格式与格式器中的预期格式匹配。我看不出这是怎么回事?
答案 0 :(得分:-1)
结果证明dateDecodingStrategy似乎不喜欢使用我使用的日期格式。我不得不写一个自定义的初始化程序并在那里处理格式。
现在可以正常工作。