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 :

Problème de Date


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut Problème de Date
    Bonjour,

    je pensais que le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Calendar calendar = Calendar.getInstance(Locale.ENGLISH);
    calendar.setTimeInMillis(1000);
    String date = String.valueOf(calendar.get(Calendar.HOUR))+":"+
                       String.valueOf(calendar.get(Calendar.MINUTE))+":"+
                       String.valueOf(calendar.get(Calendar.SECOND));
    me retournerait 0:0:1 à la place de ça j'ai 1:0:1.
    Le calendrier semble être en heure française pourtant il est bien initialisé en anglais.

    Des idées ?

  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 normal : getInstance(Locale) ne modifie que la localisation (langue + format) mais en aucun cas le fuseau horaire (qui reste celui par défaut).

    Si tu veux utiliser le fuseau horaire GMT comme je le pense, tu dois le spécifier explicitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    a++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut
    Tu as raison !
    Merci beaucoup.

  4. #4
    Membre actif Avatar de DrHelmut
    Homme Profil pro
    Software craftsman - JS, Java...
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Software craftsman - JS, Java...
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Par défaut
    chose étrange, lorsque l'on utilise la fonction getTime() de la classe Calendar pour obtenir un objet Date, ce dernier repasse automatiquement à l'heure locale...

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Calendar myCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
    myCalendar.set(Calendar.HOUR_OF_DAY, 23);
    System.out.println(myCalendar.get(Calendar.HOUR_OF_DAY) );
    //done bien 23
    System.out.println(myCalendar.getTime().getHours());
    //donne 1...
    à mon avis il y a une simple convertion des millisecondes sans tenir compte d'autre chose... c'est limite un bug fonctionnel de Java ça ! (le premier que je découvre)

  5. #5
    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 DrHelmut
    à mon avis il y a une simple convertion des millisecondes sans tenir compte d'autre chose... c'est limite un bug fonctionnel de Java ça ! (le premier que je découvre)
    Non ce n'est pas un bug...

    Déjà la méthode getHours() est deprecated et ne devrait pas être utilisée... ensuite dans sa documentation il est bien indiqué qu'elle renvoi l'heure dans le fuseau horaire de la machine... et si tu as le même fuseau horaire que moi il y a 2 heures d'écart avec le fuseau GMT...

    a++

  6. #6
    Membre actif Avatar de DrHelmut
    Homme Profil pro
    Software craftsman - JS, Java...
    Inscrit en
    Octobre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Software craftsman - JS, Java...
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 117
    Par défaut
    Certes getHours() est deprecated; mais j'obtenais le même résultat avec un simple affichage de la Date (un toString() quoi)

    Cela dit, je reviens sur ce que j'ai dit : non seulement tu as raison et j'avais pas fait attention à ce que disait la doc; mais en plus dans le cadre de mon appli c'est le top : j'ai une heure limite en GMT qui est automatiquement transformée en heure locale chez les postes clients, c'est exactement ce que je voulais

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

Discussions similaires

  1. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 15h34
  2. problème de date
    Par baboune dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 10/06/2004, 10h52
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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