【问题标题】:Timezone Problem in Java / LinuxJava / Linux 中的时区问题
【发布时间】:2009-10-22 13:07:52
【问题描述】:

我有一个应用程序在 tomcat/Linux 下以集群模式(两个节点)运行。 不幸的是,我注意到 node1 和 node2 有不同的时间设置。 当我在 shell 中打“日期”时,我在两台机器上得到的结果是一样的:

  > 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 => Thu Oct 22 13:48:21 GMT+01:00 2009 当前时区:GMT+01:00

而在另一个节点我得到: 当前时间以毫秒为单位 = 1256215779203 => Thu Oct 22 14:49:39 CEST 2009 当前时区:欧洲/柏林

这是 Linux 设置还是 java 设置? 无论如何,我该如何改变呢?

提前致谢!

路易斯

【问题讨论】:

    标签: timezone


    【解决方案1】:

    根据documentation,默认时区的来源可能会因实现而异。对于您的情况,似乎一台服务器正在使用夏令时,而另一台则没有。

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

    【讨论】:

      猜你喜欢
      • 2020-12-20
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多