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}")

मुझे यह नहीं मिल रहा है कि यह दस्तावेज़ीकरण में क्या दर्शाता है।

1
GoldenJoe 6 सितंबर 2019, 01:26

1 उत्तर

सबसे बढ़िया उत्तर

IOS दिनांक को अक्सर ReferenceDate से सेकंड के रूप में एन्कोड या संसाधित किया जाता है

जैसे Date(timeIntervalSinceReferenceDate:)

इसके लिए दस्तावेज है:

सारांश

1 जनवरी 2001 को 00:00:00 UTC के सापेक्ष प्रारंभ की गई दिनांक मान को दिए गए सेकंड की संख्या से बनाता है।

इसके माध्यम से अपना नंबर चला सकते हैं, और आपको अपनी तिथि वापस मिल जाएगी:

Date(timeIntervalSinceReferenceDate: 589331953.61679399)

आउटपुट: "2019-09-04 23:19:13 +0000\n"


जहां तक ​​स्पष्ट एन्कोडिंग दस्तावेज़ीकरण की बात है। यह काफी सारगर्भित है।

दस्तावेज़ीकरण में डिफ़ॉल्ट एन्कोडिंग रणनीति का संदर्भ दिया गया है:

डिफ़ॉल्ट रणनीति JSONEncoder.DateEncodingStrategy.deferredToDate रणनीति है।

हालांकि, इसका वास्तव में क्या अर्थ है (मैन्युअल परीक्षण से परे) पर कोई स्पष्टता प्रतीत नहीं होती है, संदर्भ वर्तमान में यहां। इंटरफ़ेस फ़ाइलों में खुदाई करने पर भी, कोई और प्रकाश नहीं लगता है।

4
Firo 6 सितंबर 2019, 01:40