[TimeZone] Comment java récupère les infos ?
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)
Citation:
01/01/1978 00:00:00 +1200 Heure d'été de Nouvelle-Calédonie
Tandis que sur le client la même date est :
Citation:
31/12/1977 23:00:00 +1100 Heure des îles Salomon
Le fuseau horaire Nouvelle-Calédonie et le même que celui 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 :
Code:
1 2
|
System.out.println("DST 01/01/1978 = " + TimeZone.getDefault().inDaylightTime(new GregorianCalendar(1978, Calendar.JANUARY, 1).getTime())); |
M'affiche true sous Linux avec JRE 1.5.0_06, mais false sous Windows (même version de JRE)
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