首页 > 解决方案 > 解码期间的新纪元日期

问题描述

我有以下 json 对象。

{"date" : 1596304900, "name" : "registration"}

我有以下结构

struct Classroom : Codable{
   let date : Int
   let name : String
}

正如您在 json 对象中看到的,date实际上是纪元时间,并且希望在解码操作期间将其转换为人类可读的日期。我想知道在解码过程中需要如何完成。

标签: swift

解决方案


使您date的日期而不是 Int,并使用 JSONDecoder 并将其日期解码策略设置为纪元解码器:

https://developer.apple.com/documentation/foundation/jsondecoder/datedecodingstrategy/secondssince1970

一切都会像魔术一样正确发生。(在您给出的示例中,日期将是 2020 年 8 月 1 日,格林威治标准时间 18:01:40。)

请注意,这不是“人类可读的”;这将是一个日期。您不存储人类可读的;你表现出人类可读的。您仅在界面中使用格式化程序处理它。


推荐阅读