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 ...

erhalten

Bitte, 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];
War es hilfreich?

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
scroll top