平常只用日期,很少精確到時間,今天偶爾用到了時間,發現小時比本機時間小了8個小時,操作系統是WIN7。時區設置也是+8北京。在網上搜索到可能是注冊表壞了,下了一個XP的注冊表導入后恢復正常了。
原帖地址:http://huiy.javaeye.com/blog/200512
問題描述:Window XP 系統自己能夠讀取正確的時間,但是用java獲取的時間始終與北京時間相差八個小時。
原因分析:
1.系統本身時區設置錯誤(可以排除,上面已經交代系統能夠獲取正確時間)
2.注冊表出現異常。
注冊表對應項:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
解決之道:
1.備份Time Zones這一項
2.從正常的并且是相同系統的機器中導出該項,然后倒入到自己機器中
上招不行,還有一招!
1.找到jdk 的安裝路徑 找到 如:
a) C:\Program Files\Java\jdk1.5.0\jre\lib\zi\Etc;
b) C:\Program Files\Java\jdk1.5.0\jre\lib\zi;
c) C:\Program Files\Java\jre1.5.0\lib\zi\Etc;
d) C:\Program Files\Java\jre1.5.0\lib\zi;
這四個文件路徑下找到 GMT 文件 進行刪除(注意:在刪除之前將其文件備份一下,以防萬一);在 C:\Program Files\Java\jdk1.5.0\jre\lib\zi\Etc 下找到 GMT-8 文件復制一份 重命名為 CMT ,將其原來 的 GMT 文件覆蓋掉即可!