2016-07-12 37 views
0

Ich versuche, UTC-Datum zu lokalen Datum in Swift konvertieren, aber nach UTC To Local Datum in Zeichenfolge ich konvertiere diese Zeichenfolge wieder in NSDate, aber ich bekomme immer im UTC-Datumsformat unten ist mein CodeGet UTC Datum auf lokales Datum in Swift iOS

Datum: in UTC: 2016-07-20 18:30:00 +0000

ich dieses Datum in lokalem Datum versuchen, unter Code überprüfen:

let dateInUTC = NSDate() 
     let seconds: Int = NSTimeZone.systemTimeZone().secondsFromGMT 
     print(seconds) 
     let localDateFormatter: NSDateFormatter = NSDateFormatter() 
     localDateFormatter.dateFormat = "MM/dd/yyyy HH:mm" 
     localDateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: seconds) 
     let lastDate: String = localDateFormatter.stringFromDate(dateInUTC) 
     print(lastDate) 

zu dieser Zeit bekomme ich "07/12/2016 16:56:36 GMT + 5: 30", bedeutet Ich habe lokales Datum in string, aber ich möchte dieses Datum in NSDate so wieder i konvertiere dieses Zeichenfolge Datum in NSDate, überprüfen Sie unter

let getDate:NSDate = localDateFormatter.dateFromString(lastDate)! 
    print(getDate) 

aber in diesem Stadium wieder bekam ich Datum in UTC (2016.07.12 11: 26:36 0.000), aber ich möchte in lokalem Datum,

  • ich eine Menge Zeit in Swift versucht, aber nicht vor Ort Datum von String bekommen, diese Codezeile verwenden i in Objective-c, seine adaequat in obj-c, aber wenn ich in swift versuche, bekomme ich immer UTC Datum, suggeriere mich und gib mir den richtigen Weg um das zu lösen.
+2

NSDate stellt einen absoluten Zeitpunkt dar und hat KEINE ZEITZONE. Dies wurde wiederholt gestellt und beantwortet. –

+0

also, wie man NSDate mit lokaler Zeitzone erhält? (Anmerkung: Nicht in der Zeichenfolge, sollte es in NSDate sein) –

+0

Diese Frage macht keinen Sinn, NSDate ist nur die Anzahl der Sekunden seit dem 1. Januar 2001 GMT. Siehe zum Beispiel http://stackoverflow.com/questions/24917483/swift-nsdate-utctime-and-local-tme oder http://stackoverflow.com/questions/18124684/nsdate-change-time-zone. Die Methode * description * von NSDate verwendet UTC, um das Datum als Zeichenfolge darzustellen. –

Antwort

1

NSDates speichern keine Zeitzoneninformationen. Beim Abrufen müssen Sie immer dateFormatter mit der Zeitzone verwenden.