場景:後台返回給頁面的時間統一差8小時。
分析:差八小時,應該是時區問題。具體的是哪一層出的問題呢,mybatis?mysql?系統時間?
解析:1.查詢mysql時區(正常)
輸入show variables like "%time_zone%";
,顯示當前時區
全域性引數system_time_zone
系統時區,在mysql啟動時會檢查當前系統的時區並根據系統時區設定全域性引數system_time_zone的值。
全域性引數time_zone
用來設定每個連線會話的時區,預設為system時,使用全域性引數system_time_zone的值。
中國標準時間=cst(china standard time) ut+8:00 。
mysql的時區=system_time_zone+time_zone
2.mybatis的時間出問題啦?系統時間出問題啦?
**debug除錯,顯示**取的當前系統時間正常,但是寫入庫的時候就異常差了八小時。初步懷疑是mybatis的什麼配置異常導致。
mybatis我找到可能影響時區的就是連線串上的配置,
,嘗試將這個改為
。執行test方法插入資料庫,時間已修正。
綜上確認問題:mybatis的連線串上的時區設定異常,導致插入日期資料時區異常
MySql中設定時區為東八區
在mysqld下新增配置default time zone 8 00 然後重啟mysql服務 windows下管理員身份啟動cmd net stop mysql net start mysql mysqld 設定服務端使用的字符集為utf 8 character set server utf8 繫結...
mysql 時區設定 修改MySQL時區設定的方法
mysql 時區預設是伺服器的時區。檢視 複製 如下 mysql show variables like time zone variable name value system time zone cst time zone system 2 rows in set 0.00 sec 可以通過修改...
mysql設定儲存時區 MySQL 設定時區的影響
個人理解,mysql 設定時區的不同會影響日期相關函式的返回結果。對資料表裡的日期資料插入 查詢沒有影響,儲存的都是本地時間。舉例來說,對於 select now 如果 mysql 伺服器時區被設定為東五區,返回的就是東五區的時間,而不是東八區的時間。對於 select unix timestamp...