Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
869 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java/JEE] [Résolu] Comportement Calendar selon Locale

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java/JEE] [Résolu] Comportement Calendar selon Locale

n°2053787
biboo_
\o/
Posté le 02-02-2011 à 17:26:11  profilanswer
 

Salut à tous,
 
Je suis face à un gros problème concernant la méthode "set" de la classe Calendar. En effet, je manipule des dates dans une application en J2EE, et en exécutant le code, j'obtients un résultat différent entre mon serveur Weblogic 10 (en local, tournant sous windows XP) et un serveur Weblogic 10 distant (tournant sous Solaris 10).
 
Voici la portion de code incriminée (en gras) (faites pas attention à la logique du code, je ne fais que passer derrière du code qui ne m'appartient pas  [:amandine75011] ) :
 

Code :
  1. // compare = Wed Feb 02 16:42:54 CET 2011
  2. compare.add(Calendar.DAY_OF_YEAR, 7);
  3. LOG.debug("compare.add(Calendar.DAY_OF_YEAR.. = "+compare.getTime());
  4. compare.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  5. LOG.debug("compare.set(Calendar.DAY_OF_WEEK.. = "+compare.getTime());
  6. compare.add(Calendar.DAY_OF_YEAR, -7);
  7. LOG.debug("compare.add(Calendar.DAY_OF_YEAR.. = "+compare.getTime());


 
Et le résultat dans les logs :
 
- En local :

Code :
  1. getDuree() : compare.add(Calendar.DAY_OF_YEAR.. = Wed Feb 09 16:42:54 CET 2011
  2. getDuree() : compare.set(Calendar.DAY_OF_WEEK.. = Sun Feb 13 16:42:54 CET 2011
  3. getDuree() : compare.add(Calendar.DAY_OF_YEAR.. = Sun Feb 06 16:42:54 CET 2011


 
 
- Sur mon serveur Weblo distant :

Code :
  1. getDuree() : compare.add(Calendar.DAY_OF_YEAR.. = Wed Feb 09 16:42:17 CET 2011
  2. getDuree() : compare.set(Calendar.DAY_OF_WEEK.. = Sun Feb 06 16:42:17 CET 2011
  3. getDuree() : compare.add(Calendar.DAY_OF_YEAR.. = Sun Jan 30 16:42:17 CET 2011


 
=> Comme vous pouvez le constater, sur le serveur distant (tournant sous Solaris), il y a une semaine de différence.  
La bonne valeur est celle sur mon serveur local, évidemment. :aie:
 
Question : Quelqu'un aurait-il une idée de la cause de cette différence de comportement, a priori venant de la méthode SET?  
 
Infos complémentaires :  le serveur distant est bien à la même date et au même TimeZone que mon serveur en local, même "Locale" (FR).
 
En espérant avoir été clair, merci d'avance de votre aide. :)


Message édité par biboo_ le 03-02-2011 à 14:42:37
mood
Publicité
Posté le 02-02-2011 à 17:26:11  profilanswer
 

n°2054060
biboo_
\o/
Posté le 03-02-2011 à 14:40:54  profilanswer
 

J'ai résolu le problème.
Pour ceux que ça intéresse, c'était un problème de Locale. Selon la locale, le premier jour de la semaine est un dimanche (US), un lundi (FR).
Ainsi, je recommande à tous ceux qui manipulent des dates (à travers des Calendar en l'occurrence), renseigner un TimeZone et une Locale, histoire de pas se faire avoir. :p


Message édité par biboo_ le 03-02-2011 à 14:43:08

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java/JEE] [Résolu] Comportement Calendar selon Locale

 

Sujets relatifs
macro TCD: impossible lire propriété PivotTable de la classe WorkSheetproblème avec le constructeur de copie
Problème de compilation avec Code Blockprobleme de comparaison
[VBA Excel] Problème ComboBox et Function [Résolu]structure Vs classe
Récupération et utilisation des menus windows en JAVAutilisation de sous fonction dans un objet et appel de methode dedans
Problème scrollbar page persoprobleme d'exécution
Plus de sujets relatifs à : [Java/JEE] [Résolu] Comportement Calendar selon Locale


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR