Pourquoi NSCalendar dateFromComponents retourne mauvaise date?
-
29-09-2019 - |
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];
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