2009-10-22 49 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可能會有所幫助。