IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[Date] Décalage au passage à l'heure d'hiver


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut [Date] Décalage au passage à l'heure d'hiver
    Bonjour,

    j'ai un fichier XML avec des dates. Je crée à l'aide de Xstream des objets dont certain contiennent ces dates... Or de puis que l'on est passé à l'heure d'hiver (enfin je pense, je viens juste de m'en apercevoir...) j'ai un décalage de 1h.

    Un objet ayant la date 2007-11-01 23:12:41 dans le fichier XML se retrouve en tant qu'objet avec un date dont l'heure est 22:12:41 ....

    bout de fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <date>2007-11-01 23:12:41 CEST</date>
    est-ce que quelqu'un aurait une idée d'où cela peut-il bien venir ???

    merci d'avance, cordialement,

    tatia34

  2. #2
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par tatia34 Voir le message
    bout de fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <date>2007-11-01 23:12:41 CEST</date>
    La date dans ton fichier xml est donnée en heure d'été.
    CEST signifie en effet Central European Summer Time.

    Donc a priori, rien d'étonnant à ce que l'heure soit convertie en heure d'hiver au moment du parsing.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    merci pour ta réponse

    en fait à la base, dans mon fichier XML j'ai juste <date>2007-11-01 23:12:41</date>
    c'est dans le code que "CEST" était rajouté car à priori, sans rien xstream crie
    le hic c'est que c'est pas moi qui ait écrit ce code et que j'avais aucune idée de ce que voulais dire CEST....

    Conclusion : en remplaçant CEST par CET, ça marche !!! mais est-ce que c'est censé marcher partout ??? telle est la question

    tatia34

  4. #4
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Il faut savoir que l'heure est définie pour une timezone donnée. Donc en mettant CET, si tu repasses en heure d'été, tu auras de nouveau un "décalage".

    Ce comportement est logique car en fait, ce dont il faut se convaincre, c'est que les 2 dates 2007-11-01 23:12:41 CEST et 2007-11-01 22:12:41 CET sont équivalentes.

    Ce n'est donc pas un comportement erroné pour moi.

    Je ne sais pas si ma réponse te satisfait.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    donc si je souhaite avoir la bonne date au niveau de mon appli, il faut que je détermine si on est à l'heure d'été ou d'hiver et que j'ajuste en conséquence mon xml (ajout de CET ou CEST suivant la période) ?

    ça me semble un peu tiré par les cheveux tout ça

  6. #6
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Non ce que je te dis, c'est justement de ne rien changer car le comportement est normal.

    La date 2007-11-01 23:12:41 CEST est la même que 2007-11-01 22:12:41 CET.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    je comprends bien que c'est deux dates sont identiques dans l'absolu....

    le problème : je récupère un fichier XML alimenté à partir d'une base de données centrale. Dans ce fichier XML j'aurais donc en été une date CEST et en hiver une date CET.

    A partir de ce fichier XML, je crée mes objets par l'intermédiaire de xstream.
    Comment indiquer à Xstream que je veux récupérer les dates telles quelles sont dans le fichier XML sans forcément lui dire que c'est des dates CEST ou CET ce qui m'obligerait à déterminer à quelle période on est...

    chais pas si je suis super claire dans mes explications

    j'ai regardé de plus près la page des converters de xstream : http://xstream.codehaus.org/converters.html
    mais je vois pas trop ce que je peux utiliser...

  8. #8
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par tatia34 Voir le message
    je comprends bien que c'est deux dates sont identiques dans l'absolu....

    le problème : je récupère un fichier XML alimenté à partir d'une base de données centrale. Dans ce fichier XML j'aurais donc en été une date CEST et en hiver une date CET.

    A partir de ce fichier XML, je crée mes objets par l'intermédiaire de xstream.
    Comment indiquer à Xstream que je veux récupérer les dates telles quelles sont dans le fichier XML sans forcément lui dire que c'est des dates CEST ou CET ce qui m'obligerait à déterminer à quelle période on est...

    chais pas si je suis super claire dans mes explications

    j'ai regardé de plus près la page des converters de xstream : http://xstream.codehaus.org/converters.html
    mais je vois pas trop ce que je peux utiliser...

    J'avoue que je ne comprends pas ton problème.

    Etant donné que les 2 dates sont les mêmes, l'objet Date crée par Xstream sera identique. Après l'histoire du CET ou CEST ce n'est que de l'affichage dépendant de la Timezone où tu te trouves. Considère le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    String dateString = "2007-11-01 23:12:41 CEST";
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
            try{
                Date date = sdf.parse(dateString); // création de l'objet Date à partir de dateString
                System.out.println(sdf.format(date)); //affichage dans la timezone courante (CET)
                // renvoie 2007-11-01 22:12:41 CET (car la timezone actuelle est CET)
                sdf.setTimeZone(TimeZone.getTimeZone("GMT+2")); //on sette la timezone du SimpleDateFormat en CEST (soit GMT+2) pour avoir un affichage en CEST
                System.out.println(sdf.format(date)); //affichage dans la timezone CEST (GMT)
                //renvoie 2007-11-01 23:12:41 GMT+02:00 (la date du début car GMT+02:00=CEST)
            }catch(ParseException e){ 
                e.printStackTrace();            
            }
    Tu vois bien, un seul objet date, deux affichages différents selon la timezone.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    je suis pas sûre de tout comprendre non plus... les dates et moi, ça fait deux..

    enfin bref, à priori j'ai résolu mon problème en créant mon propre converter ave le format de la date telle quelle m'est passée dans le fichier XML que je n'ai donc pas besoin de modifier en ajoutant CET ou CEST...

    en tout cas, merci pour toutes tes réponses !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Teste si la date correspond au passage à l'heure d'hiver
    Par hpalpha dans le forum Contribuez
    Réponses: 0
    Dernier message: 13/02/2011, 18h43
  2. Réponses: 2
    Dernier message: 26/10/2008, 08h34
  3. Passage à l'heure d'hiver
    Par cchatelain dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 05/11/2005, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo