2017-06-16 6 views
-2

Ich habe einen DateFormatter und ich übergebe eine Zeichenfolge von Datum mit einer Absicht, um zu Datum zu transformieren. Das Problem ist, dass dieses Enddatum immer mit 3 Stunden mehr kommt. Das ist mein Code:DateFormatter Hinzufügen von 3 Stunden im Datum Ergebnis

let taskDateFormatter = DateFormatter() 
taskDateFormatter.locale = Locale.current      
taskDateFormatter.dateFormat = "dd/MM/yyyy HH:mm:ss" 
print(task!.logData!)// this print 016/06/2017 10:25:12 
let date = taskDateFormatter.date(from: task!.logData!) 
print(date!)// this print 2017-06-16 13:25:12 +0000 

Was mache ich falsch?

+4

Es gibt keine Fehler hinzuzufügen. Sie befinden sich in der GMT-3-Zeitzone und "(NS) Date" verwendet immer UTC zum Drucken (wie "+0000" anzeigt). –

+0

Mögliches Duplikat von https://stackoverflow.com/questions/6229024/nsdate-format-outputting-wrong-date oder https://stackoverflow.com/questions/29407599/nsdateformatter-return-wrong-date-swift –

+0

Mögliches Duplikat von [NSDate Formatausgabe falsches Datum] (https://stackoverflow.com/questions/6229024/nsdate-format-outputting-wrong-date) – Stonz2

Antwort

0

Versuchen

taskDateFormatter.timeZone = NSTimeZone(name: "UTC") 
+0

diese Arbeit! Vielen Dank!!!! –

+0

Tun Sie dies nicht, es sei denn, die analysierte Zeichenfolge ist wirklich im UTC-Format. Tun Sie dies nicht, nur um die Ausgabe des Druckdatums zu ändern. – rmaddy

Verwandte Themen