Java —— 時區(夏令時)問題


有沒有遇到過這樣的情況:數據庫里的是時間是“1991-4-14”,但是Java取出來后就成了“1991-4-13”。

 

解決方法一:

先把時區設成GMT,把 根據夏時制自動調節時鍾 的選項去掉。

再把時區改回來。

  

 

解決方法二:

在取日期之前,加入如下代碼:

TimeZone.setDefault(TimeZone.getTimeZone("GMT+08"));

 

 

解決方法三:

如果涉及的地方比較多,方法二改動起來就比較麻煩。

還有個更簡單的:在JVM啟動的時候,加入參數 -Duser.timezone=GMT+08

 

【網摘】

    我這次工作將幾十年的資料入庫,發現問題都出現在1987到1991年的四月(86年是五月)。
    剛才從goole查了一下,我國實行夏時制剛好也是從1986年到1991(http://www.time.ac.cn/time/concept/6.htm)。
    所以我大膽估測,java其實已經注意到中國時制(CST)的夏令時了,當運行到那個星期日要轉為夏令時的時候,卻把兩國的CST搞混,美國的CDT就出來了。
    又或者java沒有錯,那個"CDT"就是中國的"CDT"。

 

 


免責聲明!

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



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