數據庫入庫時間相差13個小時問題排查與解決


在測試時發現插入數據庫后的時間值與預期存在偏差,比實際時間慢13個小時
排查步驟:
1.因為是是遠程數據庫,所以首先考慮是不是服務器時間設置存在問題
date查看服務器時間
和實際時間一致,該條排除
2.考慮是不是數據庫時區設置問題
查看數據庫時間

和實際時間一致,該條排除
3.考慮Java代碼在插入數據庫之前對值做了改變
在步驟1查看服務器時間時,可以看到時間后面有個CST
CST解釋
由上圖可以知道美國中部時間和中國標准時間相差14個小時,非常接近相差的13個小時。因為當前是夏季,所以剛好是相差13個小時。
至此可以初步判斷應該是Java將CST理解成了美國中部時間。
3.1 驗證
在數據庫連接代碼中加入時區設置

jdbc:mysql://xxx.xxx.xxx.xxx/xx?serverTimezone=Hongkong

  

經過測試,發現問題得以解決。

 


免責聲明!

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



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