Bonjour
Je rencontre un pb avec les Calendar de Java.
Dans mon appli, je reçois une date d'un système externe. Cette date est récupérée sous forme de Calendar.
Or, je me rends compte que les champs ne correspondent pas à l'heure exacte reçue.
On voit dans la trace suivante que "HOUR_OF_DAY=15,MINUTE=56,SECOND=39". Or, lorsque je formate la date pour l'afficher j'obtiens "16:56:39"
Cela me pose un problème car je dois modifier cette heure à 20h.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 maDate = java.util.GregorianCalendar[time=1323446199105,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo [id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1, YEAR=2011,MONTH=11,WEEK_OF_YEAR=49,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=343,DAY_OF_WEEK=6, DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=56,SECOND=39,MILLISECOND=105,ZONE_OFFSET=0,DST_OFFSET=0] maDate time = 1323446199105 maDateFormattee = 09-12-2011 16:56:39
Or, lorsque je positionne l'heure à 20h avec "maDate.set(Calendar.HOUR_OF_DAY, 20);"
j'obtiens également 1h de décalage, et l'heure affichée est 21h.
Pour quelle raison y a-t-il une heure de décalage entre l'heure affichée et le Calendar ?
Est-ce du aux locales ?...
Comment peut-on récupérer ce décalage pour ajuster l'heure que je vais positionner ? Visiblement, l'offset du TimeZone est à 0... Je ne peux donc même pas me baser dessus...
Merci d'avance pour votre aide.
Partager