Es klingt wie NSDate-Unterstützung ist nicht in SwiftyJSON integriert, aber Sie können die JSON-Klasse mit Ihren eigenen Komfort-Accessoren erweitern. Der folgende Code wurde von this GitHub issue angepasst.
extension JSON {
public var date: NSDate? {
get {
if let str = self.string {
return JSON.jsonDateFormatter.dateFromString(str)
}
return nil
}
}
private static let jsonDateFormatter: NSDateFormatter = {
let fmt = NSDateFormatter()
fmt.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
fmt.timeZone = NSTimeZone(forSecondsFromGMT: 0)
return fmt
}()
}
Beispiel:
let j = JSON(data: "{\"abc\":\"2016-04-23T02:02:16.797Z\"}".dataUsingEncoding(NSUTF8StringEncoding)!)
print(j["abc"].date) // prints Optional(2016-04-23 02:02:16 +0000)
Unter Umständen müssen Sie das Datum Formatierer für Ihre eigenen Daten optimieren; Weitere Beispiele finden Sie unter this question. Siehe auch this question about date formatting in JSON.
Danke, das sieht toll. Ja, ich muss meine Datumsformatierung optimieren. Es funktioniert jetzt nicht mit einem Beispieldatum von '2016-04-24T16: 47: 58.319 + 0000'. Nicht sicher, warum dies nicht mit dem 'NSDateFormatter' Format geschieht, das Sie in der Antwort erwähnen. –
Da das von mir verwendete dateFormat keine Zeitzoneninformationen akzeptiert. Sieh dir die anderen Fragen an, die ich verlinkt habe; Ich denke, die Antworten enthalten ein Beispiel, das tut. – jtbandes