Question

J'attends 2010-10-11 00:00:00

Mais au lieu que je reçois 2010-10-10 21:00:00 +0000

Je sais que je peux ajouter quelques heures et recevoir date souhaitée, mais je ne comprends pas pourquoi je reçois la veille avec 21 heures ...

S'il vous plaît, aide!

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];
Était-ce utile?

La solution

Je pense que votre problème peut être résolu en mettant le NSTimeZone.

Autres conseils

Si vous avez besoin d'une utilisation au format temps spécifique ou écrire formatter autre cela pour obtenir le temps correct. première 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")

ou si vous avez besoin de la date des composants ci-dessous utiliser le code comme ...

let calendar = NSCalendar.currentCalendar()
    calendar.timeZone = NSTimeZone(name: "GMT")!
    let date = calendar.dateFromComponents(components)

ou vous avez besoin

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top