-3

JSON にこの日付があります。2021-07-31T00:00:00+02:00かなり標準的です。

私の Postgre SQL は、日付を のように秒単位で保存します646869600

デコーダーの設定方法を教えてください。

let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .deferredToDate
let o7 = try! decoder.decode(Organization.self, from: o6)

.deferredToDate.iso8601、の 3 つを試し.secondsSince1970ました。すべて同じエラーが発生しました:

Double をデコードする必要がありましたが、代わりに文字列/データが見つかりました。

なにが問題ですか?

4

2 に答える 2

1

これは、標準の ISO8601 日付形式です。日付デコード戦略.iso8601はそれをデコードできます。

let jsonString = """
{"date":"2021-07-31T00:00:00+02:00"}
"""

struct Organization : Decodable {
    let date : Date
}

let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let o7 = try! decoder.decode(Organization.self, from: Data(jsonString.utf8))

print(o7.date) // 2021-07-30 22:00:00 +0000

形式は「基準日からの秒数」のIntようです(1.1.2001)

let seconds = o7.date.timeIntervalSinceReferenceDate
于 2021-07-24T15:23:05.663 に答える