1. 程式人生 > >java開發環境顯示時間與系統時間不一致問題

java開發環境顯示時間與系統時間不一致問題

轉載自:

林的部落格

1.new Date() 得到的時間 和系統相差 相差8個小時

2.eclipse控制檯列印的時間與系統相差 相差8個小時

3.log4j日誌的時間與與系統相差 相差8個小時

上述問題其實是同一個問題。

原因:java獲得的時區跟系統的時區不一樣

解決方法如下:

1.在程式碼前加上下面這句話就行了:TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");TimeZone.setDefault(tz)

2.在tomcat中修改catalina.bat檔案的 set JAVA_OPTS 在後面加上-Duser.timezone=GMT+08

3.修改登錄檔中的預設時區改成(GMT+08:00) 北京,重慶,香港特別行政區,烏魯木齊

如果還不行看下:從正常的並且是相同系統的機器中匯出HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones 項,然後匯入到自己機器中 。


以上三種方法都是解決方法。

在修改時區的時候最好用程式碼看下JAVA獲得的時區是什麼時區,程式碼如下:

Properties props=System.getProperties();
Iterator iter=props.keySet().iterator();
while(iter.hasNext())
{
String key=(String)iter.next();
System.out.println(key+" = "+ props.get(key));
}

user.timezone= 就是JAVA獲得的時區,然後再看作業系統的時區。去改登錄檔吧。