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] problème de date


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Par défaut [Date] problème de date
    Bonjour à tous,

    Je rencontre un problème de date dans le cadre du développement d'un chat en Java. Avant l'insertion d'un message en base de données, je set la date du message en utilisant un GregorianCalendar. Malheureusement, tous les messages sont datés 2h avant l'heure réelle. Par exemple, j'écris un message à 15:20:33, il sera enregistré comme ayant été rédigé à 13:20:33

    Ci-dessous un extrait de la structure de l'objet Message et du code réalisant l'insertion du message en base de données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Message {
    	private Long id;
    	private Calendar date;
    	private String message;
     
    	// ...
     
    	public void setDate(Calendar date) {
    		this.date = date;
    	}
     
    	// ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // ...
     
    Message msg = new Message();
     
    // ...
     
    msg.setDate(new GregorianCalendar());
     
    // ...
    J'ai bien essayé de passé un objet TimeZone ou un objet Locale dans le constructeur de GregorianCalendar, malheureusement, rien n'y fait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    msg.setDate(new GregorianCalendar(TimeZone.getTimeZone("France/Paris")));
     
    msg.setDate(new GregorianCalendar(TimeZone.getTimeZone("GMT+01/00")));
     
    msg.setDate(new GregorianCalendar(Locale.FRANCE));
    En soit, ce n'est pas vraiment un problème, mais côté base de données, un job efface toutes les 30 secondes tous les messages plus vieux d'1/2 heure...

    Merci d'avance pour vos réponses

  2. #2
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Tu pourrais nous montrer comment tu insères cette date dans ta base de données (c quelle base?? MySQL??)
    a+
    Manu

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Par défaut
    Le SGBD utilisé est MySQL 4.1.15 (plateforme de test) ou Oracle 10g (plateforme de production), l'insertion en BDD se fait par le biais d'Hibernate.

    Mais le problème vient directement du code Java. En effet, directement après avoir setté la date du message, j'affiche le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    log.debug("message hour = " + msg.getDate().get(Calendar.HOUR_OF_DAY));
    et la valeur affichée est toujours heure courante - 2 ...

  4. #4
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Je viens de tester chez moi, pas de pb (sans hibernate)... Ce ne serait pas ton serveur qui ne serait pas à l'heure ou branché sur un autre fuseau horaire???
    Désolé, je vais essayer d'y réfléchir mais comme ca je ne vois pas... Essaie de creuser un peu pour voir s'il n'y a pas de pb avec les fuseaux horaires...
    Bon courage...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 64
    Par défaut
    Que ce soit sur ma machine de développement (Ubuntu 6.06 LTS) ou sur le serveur de production (Red Hat Enterprise Edition), le problème apparaît.
    Pourtant, les 2 machines utilisent le bon fuseau horaire

    Merci pour tes réponses

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut
    Ce n'est peut être pas un problème de stockage : tes dates sont en GMT+2, quand tu les stockes, elles sont stockées en base en GMT (d'où le décalage de 2h).
    Par contre c'est peut être la restitution qui pose problème : as-tu essayé d'utiliser un SimpleDateFormat pour convertir ta date en String ? D'après ce que je lis dans la doc il y a une méthode setTimeZone() qui permet de positionner la TimeZone.

    Bon courage

Discussions similaires

  1. [Dates] Problème de date
    Par nicoaix dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2006, 15h33
  2. [Dates] Problème de date => 2006-04-04T19:00:00
    Par Sam53 dans le forum Langage
    Réponses: 4
    Dernier message: 04/04/2006, 00h09
  3. [Dates] Problème de date : jours ouvrés notamment
    Par rob2-9 dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2006, 13h46
  4. [Dates] Problème de date : ajouter 7 jours
    Par clairette dans le forum Langage
    Réponses: 8
    Dernier message: 24/01/2006, 18h40
  5. [Dates] problème Comparaison dates
    Par gwen-al dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2006, 11h24

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