【java】jdk時間差問題


轉:Java通過new Date() 得到的時間與系統時間差N個小時的解決辦法

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文鏈接:http://www.linuxidc.com/Linux/2011-12/48603.htm

般情況下不會出現如題所示的問題,既然出現了我們就要想辦法解決之。以我的機器為例,我的當前系統時間是北京時間2011-08-31T08:00:00,但是newDate()得到的卻是:2011-08-31T00:00:00。表示java得到的時間比當前系統時間提前了8個小時,那么我們就要想辦法把java得到的時間向后推遲8個小時。解決的辦法是:

1、找到你用的jre文件夾,以本機為例:C:\Program Files\Java\jdk1.5.0\jre

2、在上述文件夾下有個zi文件夾,我們的工作都在這里。

3、zi文件夾下有一個Etc文件夾,我們要做的工作就是從這個文件夾下找到對應的GMT文件替換zi下GMT文件。

4、選擇哪個文件呢?如果java獲取的時間+N=當前系統時間,就選擇GMT-N文件,重命名為GMT,覆蓋掉zi下的GMT文件,如果java獲取的時間-N=當前系統時間,就選擇GMT+N文件,重命名為GMT,覆蓋掉zi下的GMT文件。

5、再運行一下你的程序看時間是不是正確了,如果還是不正確,請確認你的jre目錄是否選得正確。

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文鏈接:http://www.linuxidc.com/Linux/2011-12/48603.htm

======================================================

64 位JDK出現八小時時差解決方法


發布的項目使用64位JDK,Java獲取的時間總比正常的時候慢8小時,但服務器的時間及時區都是正確的,解決方法:
設置JVM的默認時區為東八區(北京時間)

在下面四個目錄:

Java\jre6\lib\zi\Etc
Java\jre6\lib\zi
Java\jdk1.6.0_18\jre\lib\zi\Etc
Java\jdk1.6.0_18\jre\lib\zi 
引用下找到GMT文件備份一下,然后復制一份GMT-8並重命名為GMT
,復制完畢,重新運行一下java程序問題即可解決!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM