TimZone dans NSCalendarDate

macvelottemacvelotte Membre
23:48 modifié dans API AppKit #1
Problème lié au changement d'heure ...

Le MAC sait se mettre à  l'heure d'été.

Dans une série de calculs faits avec l'heure U.T.C (ex GMT), je dois donc corriger de - 2 heures l'heure fournie par NSCalendarDate.
Si je définis une NSString *decal :
decal=[cejour descriptionWithCalendarFormat:@%z];
l'introduction d'une condition par
if (decal==@+0200) n'est pas reconnue ???

Réponses

  • ClicCoolClicCool Membre
    23:48 modifié #2
    Bonjour,

    Sans entrer trop dans la gestion des NSTimeZone je me demande tout de même pourquoi tu cherches à  utiliser une constante comme @+0200 alors que tu précise bien qu'avec le changement d'heure été/hivers cet écart se modifie? C'est justement pour savoir si c'est heure d'été ou hiver ?

    Sinon essaies plutot

    if ([decimal isEqualToString @+0200] )

    :)
  • 23:48 modifié #3
    Quelles opérations dois tu faire sur ces dates? Si c'est juste des comparaisons (ou des classements), NSDate tiens compte du décalage donc tu n'as pas à  t'en soucier.
  • macvelottemacvelotte Membre
    23:48 modifié #4
    if ([decimal isEqualToString :@+0200] ) : oui, c'est la solution !
    Je fais des calculs "astronomiques" qui nécessitent d'utiliser le temps Universel : il faut bien que je passe du temps "légal" lu par NSCalendarDate au T.U en retranchant 2 ou 1 heure selon qu'on est en heure d'été ou heure d'hiver ; le seul moyen est bien d'utiliser timeZone ??
  • 23:48 modifié #5
    Est-ce que tu peux être plus précis sur le traitement que tu fais de ces dates? Si par exemple tu veux connaà®tre la différence de temps qu'il y a entre 2 dates, il y a par exemple la méthode [tt]-timeIntervalSinceDate:[/tt] qui renvoie le nombre de seconde qu'il y a entre la date destinataire et la date passée en argument. NSDate a d'autres méthodes comme ça qui font que tu ne dois pas te soucier de ce genre détails.
  • macvelottemacvelotte Membre
    23:48 modifié #6
    Il me faut l'heure en T.U pour calculer la position actuelle du soleil et de la lune ... : les paramètres astronomiques sont donnés pour des calculs avec cette échelle de temps.
    Pour calculer la date de la prochaine phase de la lune, par exemple,  les fonctions de NSCalendar sont tout à  fait pertinentes.
Connectez-vous ou Inscrivez-vous pour répondre.