websphere jre timezone不正确

时间:2014-11-24 03:04:39

标签: java websphere

我的工作中有两个linux应用服务器,都安装了websphere 6.1。我写了一个简单的独立java应用程序来打印当前时间。

    public static void main(String[] args) {
            TimeZone tz = TimeZone.getDefault();
            System.out.println("the default timezone is " + tz.getDisplayName(true, TimeZone.LONG));
            System.out.println("the default timezone ID is " + tz.getID());
            System.out.println("useDaylightTime = " + tz.useDaylightTime());
    }

在盒子应用程序服务器上 a 我得到......

the default timezone is Eastern Summer Time (New South Wales)
the default timezone ID is Australia/Sydney
useDaylightTime = true

在盒子应用程序服务器上 b 我得到了......

the default timezone is GMT+10:00
the default timezone ID is GMT+10:00
useDaylightTime = false

我希望应用服务器 b a 相同。有人可以帮助我做我可能需要做的事情来实现这个目标吗?

感谢

1 个答案:

答案 0 :(得分:0)

使用getDefault()方法时,如果没有缓存,Java将

Use the user.timezone property value as the default time zone ID if it's available.
Detect the platform time zone ID.
Use GMT as the last resort if the given or detected time zone ID is unknown.

根据您报告的输出,似乎应用程序服务器b没有设置user.timezone属性。 根据{{​​3}},您可以按照这些步骤设置时区

1. Start the administrative console.
2. In the topology tree, expand Servers >> Application Servers.
3. Click on application server for which you want to set the time zone
4. On the application server page, click Process Definition>>Java Virtual Machine>>Custom Properties>>New
5. Specify user.timezone in the Name field and timezone in the Value field, where timezone is the supported value for your time zone.
6. Click Apply/ok
7. Save the configuration


ex :  Name - user.timezone
     value - Asia/Singapore

所以我会验证它是否适合您的b系统。在您的情况下,您将把亚洲/新加坡改为澳大利亚/悉尼

如果上述步骤不起作用(无论出于何种原因),我只需通过时钟设置设置您的时区即可修复它,假设您可以这样做。我没有可用于测试它的Websphere系统。