2009-10-22 6 views
0

J'ai une application fonctionnant en mode cluster (deux nœuds) sous tomcat/Linux. Malheureusement, j'ai remarqué que node1 et node2 ont des paramètres de temps différents. Lorsque dans une coquille I punch « date » je reçois dans les deux machines identiques:Problème de fuseau horaire dans Java/Linux

> date --rfc-2822 
    Thu, 22 Oct 2009 15:00:15 +0200 

J'ai écrit un petit programme java qui imprime uniquement la date formatée (et le temps).

import java.util.Date; 
import java.util.TimeZone; 

public class TimeTest { 

    public static void main(String args[]) { 
    long time = System.currentTimeMillis(); 
    String millis = Long.toString(time); 

    Date date = new Date(time); 
    System.out.println("Current time in milliseconds = " + millis + " => " + date.toString()); 
    System.out.println("Current time zone: " + TimeZone.getDefault().getID()); 
    } 
} 

à un nœud que je reçois: heure actuelle en millisecondes = 1256215701981 => Jeu Oct 22 13:48:21 GMT + 01: 00 2009 fuseau horaire actuel: GMT + 01: 00

alors qu'à l'autre nœud que je reçois: heure actuelle en millisecondes = 1256215779203 => Jeu 22 octobre 14:49:39 CEST 2009 fuseau horaire actuel: Europe/Berlin

Est-ce un paramètre Linux ou un paramètre java ? Dans tous les cas, comment puis-je changer cela?

Merci d'avance!

Luis

Répondre

2

Selon le documentation la source de la valeur par défaut TimeZone peut varier la mise en œuvre. Pour votre cas, il semble qu'un serveur utilise Daylight Savings et l'autre ne l'utilise pas.

En outre, ce question peut être utile.

Questions connexes