2009-10-22 50 views
0

我有一个在tomcat/Linux下以集群模式(两个节点)运行的应用程序。 不幸的是我发现node1和node2有不同的时间设置。 当一个shell我一拳“日期”我会在两台机器一样的:Java/Linux中的时区问题

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

我写了一个小型的Java程序,只有打印格式的日期(和时间)。

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()); 
    } 
} 

在一个节点我得到:00 2009年 当前时区:GMT + 01:00

毫秒= 1256215701981 =>周四10月22日13点48分21秒+01当前时间

而在我收到其他节点: 毫秒当前时间= 1256215779203 =>周四10月22日14点49分39秒CEST 2009年 当前时区:欧洲/柏林

这是一个Linux设置或Java环境? 无论如何,我该如何改变这种情况?

在此先感谢!

路易斯

回答

2

按照documentation的默认时区可以与实施方式而变化的来源。对于你的情况,似乎一台服务器正在使用夏令时,而另一台则不是。

另外,这个question可能会有所帮助。