Re: Problème de Daylight Saving Time Java Linux/Windows

Pàgina inicial

Reply to this message
Autor: Bruno Vernay
Data:  
A: ymartin59
CC: Guilde ML
Assumpte: Re: Problème de Daylight Saving Time Java Linux/Windows
Salut

C'est la meme version de la JRE ?  Visiblement ca change:
http://java.sun.com/javase/timezones/
Encore que pour les anciennes dates, je ne comprend pas pourquoi ca changerai ?

Mais aussi d'après la FAQ de SUN:
Do my operating system's timezone patches fix the Java platform's timezone data?
 No. The Java SE platform's timezone data is not read from the local
or host operating system. The Java SE platform maintains a private
repository of timezone data in locally installed files
(.../jre/lib/zi) as part of  ...

Bon courage
Bruno


2009/6/24 <ymartin59@???>
>
>  Bonjour,
>
> J'ai un cas tordu à vous soumettre.
> Voici le contexte: une application client/serveur à base du framework Java ULC Canoo.
> Le client tourne sous forme d'Applet dans un navigateur - supposé IE/Windows pour l'instant.
> Le serveur tourne dans WebSphere 6.1 sur RedHat 5.3 en timezone Europe/Zurich.
>
> En saisissant la date de naissance 19.04.1941 (heure à 00:00) dans un champ "Date" ULC, le serveur reçoit 18.04.1941 23:00.
>
> Après recherche dans la documentation ULC Canoo s'occupe de convertir la chaîne saisie en temps local puis en temps GMT pour envoi au serveur - le serveur faisant l'opération inverse.
>
> En faisant un petit code de test en Java que l'on exécute tantôt sur Linux, tantôt sur Windows, on remarque que le DST (Daylight Saving Time) n'est pas identique pour cette date !
>
> SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
> Date currentDate = df.parse("19.04.1941");
> System.out.println("Date        : " + currentDate);
> TimeZone tz = TimeZone.getDefault();
> System.out.println("TimeZone    : " + tz.toString());
> System.out.println("TimeZone tested : " + tz.getDisplayName(tz.inDaylightTime(currentDate), TimeZone.LONG));
> boolean indaylight = tz.inDaylightTime(currentDate);
> System.out.println("Your tested time is " + (indaylight ? "in " : "not in ")  + "daylight-savings time.");
>
> Sous Linux, cette date n'est pas en DST, sous Windows, OUI.
>
> J'ai utilisé "zdump -v /etc/localtime | grep 1941" pour en savoir plus côté Linux, mais pour Windows c'est plutôt obscure.
>
> Est-ce que vous avez une explication sur ce qui se passe ?
>
> Merci d'avance
> Yves Martin
>




--
Bruno VERNAY