我有一个在tomcat / Linux下以集群模式运行的应用程序(两个节点)。 不幸的是我注意到node1和node2有不同的时间设置。 当我在一个shell中打出“date”时,我会在两台机器上得到相同的结果:
> 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());
}
}
我得到的一个节点: 以毫秒为单位的当前时间= 1256215701981 =>周四10月22日13:48:21 GMT + 01:00 2009 当前时区:GMT + 01:00
而在另一个节点我得到: 以毫秒为单位的当前时间= 1256215779203 =>星期四10月22日14:49:39 CEST 2009 当前时区:欧洲/柏林
这是Linux设置还是java设置? 无论如何,我该如何改变呢?
提前致谢!
路易斯
答案 0 :(得分:2)
根据documentation,默认TimeZone的来源可能因实施而异。对于您的情况,似乎一台服务器正在使用夏令时,而另一台服务器则没有。
此外,此question可能会有所帮助。