Warum NSCalendar das dateFromComponents gibt falsches Datum?
-
29-09-2019 - |
Frage
Ich erwarte 2010-10-11 00.00.00
Aber anstatt ich erhalten 2010-10-10 21.00.00 0.000
Ich weiß, dass ich ein paar Stunden hinzufügen kann und gewünschtes Datum erhalten, aber ich verstehe nicht, warum ich Vortages mit 21 Stunden ...
erhaltenBitte, Hilfe!
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2010];
[comps setMonth:10];
[comps setDay:11];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *retDate = [cal dateFromComponents:comps];
Lösung
Ich denke, Ihr Problem, indem der NSTimeZone
gelöst werden kann.
Andere Tipps
Wenn Sie eine bestimmte Zeitformat verwenden müssen, dass Formatierer oder auch Schreib diese richtige Zeit zu bekommen. erste Option ...
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let localDate = formatter.dateFromString("1989-10-17T05:00:00.000-0000")
oder wenn Sie Datum von Komponenten müssen verwenden die folgenden Code wie ...
let calendar = NSCalendar.currentCalendar()
calendar.timeZone = NSTimeZone(name: "GMT")!
let date = calendar.dateFromComponents(components)
oder Sie benötigen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow