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

Java Discussion :

Time 'getTime()' décalé d'une heure


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut Time 'getTime()' décalé d'une heure
    Bonjour.

    Je lis des heures dans une base de données MySQL de façon très basique (Statement JDBC -> ResultSet -> getTime), quand j'affiche le temps reçu il est correct mais si je regarde la valeur en millisecondes de ce Time il y a un décalage d'une heure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(rs.getTime("heureDepart") + " != " + rs.getTime("heureDepart").getTime());
    Pourquoi cette différence mais surtout : comment l'éviter ?

    Merci d'avance.

  2. #2
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Salut,

    Regarde du coté du timezone (decalage horaire qui depend de l'endroit ou tu te trouves).

    a+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Regarde le décalage du serveur où est hébergé celui-ci ...

  4. #4
    Membre actif Avatar de freelibre
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Par défaut getTimestamp!!
    Salut,
    Utilise le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    heureDepart = rs.getTimestamp("heureDepart");
    je crois ca va régler ton probleme.


  5. #5
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut
    getTimeStamp même soucis

    Je ne pense pas que TimeZone puisse m'aider car c'est la valeur en millisecondes qui est incorrecte (j'aurais du le préciser tout de suite).

    Le serveur (WAMP) tourne sur la même machine et je ne m'étais pas demandé si il était bien configuré. Mais ça a l'air d'être le cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT @@global.time_zone, @@session.time_zone;
     
    @@global.time_zone 	SYSTEM
    @@session.time_zone 	SYSTEM

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Si c'est un nombre d'heures qui diffère, et en particulier si tu es français et que c'est une ou deux heures, c'est que les TimeZones interviennent quelque part.

    Là c'est assez compliqué à comprendre, mais en gros : tu ne dois pas utiliser Time.getTime(). La méthode getTime() est héritée de java.util.Date et ne fait pas du tout ce à quoi on s'attend.

    - Time.getTime() renvoit le nombre de millisecondes écoulées depuis minuit, GMT.
    - Time.toString() formate l'heure, les minutes et les secondes, dans la time zone par défaut du programme.

    Nous sommes en France, GMT+1, d'où la différence d'une heure entre GMT et time zone par défaut.

    (Note : le nombre de millisecondes écoulées depuis minuit est en réalité compris comme un nombre de millisecondes écoulées depuis le 1er janvier 1970 à minuit. Le premier Janvier c'est l'heure d'hiver, donc on reste bien en GMT+1.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut
    Ok super l'explication c'est plus clair.

    Je me servais de Time à la fois pour des délais et pour des heures de départ, donc je pensais simplement les additionner.

    Je vais sauver mes délais en millisecondes et utiliser Calendar.add(Calendar.MILLISECOND, amount).


    Un grand merci à vous

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

Discussions similaires

  1. [time.h] création d'une heure personnalisée
    Par crakocrako dans le forum C++
    Réponses: 1
    Dernier message: 27/05/2010, 15h20
  2. Réponses: 6
    Dernier message: 17/04/2007, 11h34
  3. Réponses: 3
    Dernier message: 21/11/2006, 12h35
  4. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 11h38
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15

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