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 :

Comportement SimpleDateFormat sur le GMT étrange


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut Comportement SimpleDateFormat sur le GMT étrange
    Comment as tu résolu ton problème ?

    Sinon je rencontre un problème mais sur la conversion de l'heure.

    je récupere un flux RSS d'un forum et j'en affiche la date et l'heure.

    pour un post crée à 11h00 heure francaise (soi GMT +0100)

    le flux rss me renvoie Fri, 12 Jan 2007 10:00:00 +0100

    dessus j'applique le patern
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String DatePublication = "Fri, 12 Jan 2007 10:00:00 +0100";
    SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", new Locale("EN"));
     Date date = dateFormat.parse(DatePublication);
     System.out.println(date);
    le resultat obtenu est : Fri Jan 12 10:00:00 CET 2007

    le GMT +0100 n'est pas pris en compte
    et si j'applique +0000 il me rajoutera 1h

    si quelqu'un a une idée je suis preneur

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est tout à fait normal !

    Tu utilises SimpleDateFormat pour convertir une String en Date. Or l'objet Date comporte seulement le nombre de seconde depuis le 1 janvier 2007 GMT !

    L'objet Date ne comporte aucune notion de Locale ou de TimeZone.
    Ainsi lorsque tu l'affiches une zone par défaut est utilisée (et il me semble qu'elle peut dépendre des paramètres du système).

    Si tu veux obtenir la même chose qu'au départ il faut utiliser le SimpleDateFormat pour formater la Date comme bon te semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Date date = dateFormat.parse(DatePublication);
     System.out.println(dateFormat.format(date));
    a++

  3. #3
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Je ne vois pas comment lui rajouter l'heure du depart

    pour obtenir à nouveau 11h00 et non 10h00

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par link256
    Je ne vois pas comment lui rajouter l'heure du depart

    pour obtenir à nouveau 11h00 et non 10h00
    Il ne s'agit pas de "rajouter" un heure, mais d'utiliser le même fuseau horaire !

    Il faut donc utiliser la méthode format() de SimpleDateFormat, et éventuellement lui préciser le TimeZone à utiliser via setTimeZone()...

    a++

  5. #5
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    j'ai regardé le timeZone de mon sipmleDateFormat et celui-ci est en [Europe/france] soit en GMT +0100

    et comme le string recuperé est lui aussi en GMT +0100 il ne me fait pas de modification.

    alors que si je modifie ma date recupérée en mettant GMT +0000
    la il me rajoute 1h
    si je fais -0100 il me rajoute 2h
    +0200 ajoute 1h

    il faudrai dont que je modifie ma zone en me mettant sur le fuseau d'orinige pour quil me remette l'heure affiché par mon forum(11h00)

    ce qui me semble ilogique

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Il ne modifie pas la date il utilise seulement un fuseau horaire différent !

    Lorsqu'il est 11H00 en GMT
    il est 12h00 en GMT+1
    13h00 en GMT+2
    etc...

    j'ai du mal à comprendre ton problème...

    a++

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

Discussions similaires

  1. Raccourci sur touche F10 - étrange comportement
    Par hulahup dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/04/2007, 12h12
  2. comportement différent sur 2 pc
    Par robert_trudel dans le forum Access
    Réponses: 4
    Dernier message: 26/02/2007, 03h21
  3. Comportements anormaux sur une base
    Par Albator5151 dans le forum Oracle
    Réponses: 6
    Dernier message: 09/02/2007, 13h59
  4. [syntaxe] avis sur un swich étrange
    Par BainE dans le forum C++
    Réponses: 6
    Dernier message: 14/12/2005, 19h27

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