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 :

timezone et date problème !


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut timezone et date problème !
    Salut, j'instancie un gregorian calendar, puis je lui applique un timezone, quand je demande la date il me la retourne en GMT , comment faire pour appliquer effectivement le timezone que je veux, car aprés je dois utliser un jcalendar qui doit afficher l'heure selon le timezone de la machine serveur.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TimeZone tz = TimeZone.getTimeZone("America/Caracas");
    System.out.println("TZ ID : "+tz.getID());
    System.out.println("TZ display name : "+tz.getDisplayName());
    GregorianCalendar c = new GregorianCalendar();
    c.setTimeZone(tz);
    System.out.println("c TZ ID : "+c.getTimeZone().getID());
    System.out.println("c TZ display name : "+c.getTimeZone().getDisplayName());
    System.out.println("c time : "+c.getTime().toString());
    Output :
    TZ ID : America/Caracas
    TZ display name : Heure du Venezuela
    c TZ ID : America/Caracas
    c TZ display name : Heure du Venezuela
    c time : Sun May 31 13:16:08 GMT 2009
    merci.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c.getTime() retourne un objet Date, donc indépendant de la timezone, et toString est un très mauvais facon d'afficher une date. Pour controler la manière dont une date est convertie en String, utilise SimpleDateFormat.

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    c.getTime() retourne un objet Date, donc indépendant de la timezone, et toString est un très mauvais facon d'afficher une date. Pour controler la manière dont une date est convertie en String, utilise SimpleDateFormat.

    Même si j'utilise le formatter ça résoud pas le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    TimeZone tz = TimeZone.getTimeZone("America/Caracas");
        System.out.println("TZ ID : "+tz.getID());
        System.out.println("TZ display name : "+tz.getDisplayName());
        GregorianCalendar c = new GregorianCalendar();
        c.setTimeZone(tz);
        System.out.println("c TZ ID : "+c.getTimeZone().getID());
        System.out.println("c TZ display name : "+c.getTimeZone().getDisplayName());
        System.out.println("c time : "+c.getTime().toString());
        System.out.println("----------With formatter--------------");
        SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
        sdf.setTimeZone(tz);
        try {
            Date dat = sdf.parse(c.getTime().toString());
            System.out.println("date : "+dat.toString());
        } catch (ParseException e) {
            e.printStackTrace();
        }
    Output :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TZ ID : America/Caracas
    TZ display name : Heure du Venezuela
    c TZ ID : America/Caracas
    c TZ display name : Heure du Venezuela
    c time : Sun May 31 18:22:13 GMT 2009
    ----------With formatter--------------
    date : Sun May 31 18:22:13 GMT 2009

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par jad_jad Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            System.out.println("date : "+dat.toString());
    Comme je l'ai dit
    Citation Envoyé par tchize_ Voir le message
    toString est une très mauvaise façon d'afficher une date. Pour controler la manière dont une date est convertie en String, utilise SimpleDateFormat.
    donc ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("date: "+sdf.format(dat))

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 48
    Par défaut timezone et date problème !
    Merci beaucoup tchize_ c'est exactement ça

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

Discussions similaires

  1. [Dates] problème Comparaison dates
    Par gwen-al dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2006, 11h24
  2. [requête] Date à problème
    Par uloaccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 03/01/2006, 17h19
  3. Différence date .. problème #Erreur
    Par priest69 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 15h04
  4. [Dates] Problème avec la fonction header
    Par d.w.d dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 16h33
  5. [Date] Problème d'année
    Par nebule dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/12/2004, 10h55

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