Swift 用于 JSONEncoder 的默认日期格式是什么?


struct TestEnc: Codable {
var date = Date()
}
let encoder = JSONEncoder()
let tenc = TestEnc()
let jsonData = try encoder.encode(tenc)
let json = String(data: jsonData, encoding: String.Encoding.utf8)
print("json:(json)")

这将打印:

json:Optional("{"date":589331953.61679399}")

我在文档中找不到这应该代表什么。

iOS 日期通常被编码或处理为从ReferenceDate开始的秒

例如Date(timeIntervalSinceReferenceDate:)

这方面的文档是:

总结

创建一个相对于 2001 年 1 月 1 日 00:00:00 UTC 初始化给定秒数的日期值。

可以通过这个运行你的号码,你会得到你的日期:

Date(timeIntervalSinceReferenceDate: 589331953.61679399)

输出:"2019-09-04 23:19:13 +0000">


就显式编码文档而言。这是相当简洁的。

文档中提到了默认编码策略,指出:

默认策略是JSONEncoder.DateEncodingStrategy.deferredToDate策略。

但是,似乎不清楚这实际上意味着什么(除了手动测试(,目前参考在这里。即使深入研究界面文件,似乎也没有更多的光。

相关内容

  • 没有找到相关文章

最新更新