NSDate décaler de -2 heures
Bonsoir,
Je rencontre un problème avec un NSDate qui est décalé de -2 heures et j'ai testé avec un NSLog.
Voici le résultat de la console :
2011-10-09 01:49:25.850 xxxx[9288:707] Date Now = 2011-10-08 23:49:25 +0000
2011-10-09 01:49:25.855 xxxx[9288:707] dateSelected = 2011-10-08 23:49:25 +0000
Et le code :
Je précise que c'est sous Xcode 4.2 GM et iOS 5 GM.
Par avance, merci.
Je rencontre un problème avec un NSDate qui est décalé de -2 heures et j'ai testé avec un NSLog.
Voici le résultat de la console :
2011-10-09 01:49:25.850 xxxx[9288:707] Date Now = 2011-10-08 23:49:25 +0000
2011-10-09 01:49:25.855 xxxx[9288:707] dateSelected = 2011-10-08 23:49:25 +0000
Et le code :
NSDate *now = [NSDate date];<br />datePicker.minimumDate = now;<br />[datePicker setDate:now animated:YES];<br />[super viewDidLoad];<br />NSDate *dateSelected = [datePicker date]; // récupere la date choisi dans le picker<br />NSLog(@"Date Now = %@", now);<br />NSLog(@"dateSelected = %@", dateSelected);
Je précise que c'est sous Xcode 4.2 GM et iOS 5 GM.
Par avance, merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Voir ici.
Si tu n'es pas habitué à gerer les fuseaux horaires et autres manipulation de base sur les dates il faut commencer par lire le "Date and Time Programming Guide" dans la doc Apple.
Pourtant ça fonctionner très bien avant, alors comment faire pour avoir la date et l'heure choisi dans le DatePicker ?
Que faire ?
Tu récupères bien la même date et heure dans les 3 cas donc ça marche très bien.
Quand tu NSLog une NSDate comme quand tu NSLog n'importe quel NSObject ça appelle sa méthode description et il se trouve que la description de NSDate affiche sa représentation en timezone GMT, et alors ? Ca pose pas de pb, c'est qu'une représentation parmi d'autres d'une NSDate, mais ça reste le même objet.
C'est comme le nombre 5 ou 5.0 ou 5.00 c'est le même nombre, et "rouge" ou "#FF0000" ou rgb(255,0,0), c'est pareil, je vois pas le souci.
Voici mon code :
Si par exemple dans ton DatePicker tu choisis le 15/10/2011 à 14:00, et que ton iPhone est configuré correctement (c'est à dire que si tu es à Paris, ton iPhone est configuré pour être dans le fuseau horaire de Paris, bien sûr, comme tout le monde), ta NSDate récupérée doit valoir cette date " sans doute représentée sous la forme "2011-10-15 12:00:00 +0000" si tu la log avec NSLog mais bon c'est pareil "
Je vois pas trop le rapport entre le fait que tu penses ne pas recevoir la bonne date (alors que pourtant c'est le cas pour moi mais bon) et le fait que le EKEvent ne s'enregistre pas ? Même si ta NSDate était décalée de 2h comme tu le crois, je vois pas en quoi ça empêcherai le EKEvent à s'enregistrer dans ton calendrier...
Par contre, quand j'indique d'enregistrer l'événement avec myEvent.allDay = YES; là l'enregistrement se fait bien.
Je pense donc que le problème vient de l'enregistrement.
(Et tout ça avec la bonne heure sans aucun décalage de 2h car il n'y en a jamais eu)
J'ai donc mis ça :
Et c'est good.
Alors merci à toi et aux autres, car j'aurai au moins appris par mal de chose.
Merci.