Bonjour,
J'ai constaté un bug très spécifique sur les fuseaux horaires en Java sous Windows.
Le programme tourne en Nouvelle-Calédonie donc en GMT+11.
En Nouvelle-Calédonie, il n'y a actuellement pas d'heure d'été.
Lorsqu'on exécuté le programme, sur certaines dates, un décalage de moins une heure se produisait. Le 01/01/1978 fait parmi des dates concernées.
Sur le serveur, voici la date récupérée (DateFormat utilisé : "dd/MM/yyyy HH:mm:ss Z zzzz)
Tandis que sur le client la même date est :01/01/1978 00:00:00 +1200 Heure d'été de Nouvelle-Calédonie
Le fuseau horaire Nouvelle-Calédonie et le même que celui des îles Salomon.31/12/1977 23:00:00 +1100 Heure des îles Salomon
Après quelques recherches, il s'avère que l'heure d'été était actif en Nouvelle-Calédonie en 78. Par contre :
M'affiche true sous Linux avec JRE 1.5.0_06, mais false sous Windows (même version de JRE)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 System.out.println("DST 01/01/1978 = " + TimeZone.getDefault().inDaylightTime(new GregorianCalendar(1978, Calendar.JANUARY, 1).getTime()));
Donc j'aimerai savoir si la jvm s'appuie sur le système pour déterminer cette info? Si oui pourquoi sun fait des maj de time zone régulièrement ?
A+
Gronono
Partager