java開發環境顯示時間與系統時間不一致問題
阿新 • • 發佈:2019-01-25
轉載自:
林的部落格
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獲得的時區,然後再看作業系統的時區。去改登錄檔吧。