在做項目時,使用mybatis查詢關於timestamp字段時
發現返回到對象當中比數據庫的時間少8個小時
檢查Mysql 使用系統時區
如果是默認時區或者GMT都表示東八區
如果是CST,CST是美國,澳大利亞時間,這樣的話是Java查詢數據庫時錯誤的認爲是東八區時間,所以查出來減8到標準時間。
我這邊系統使用的是默認時區
解決方法
可以肯定的是時區出了問題了。
一種解決方式是修改系統的時區問題,這裏省略,咱們說的是在項目裏的解決方案
修改apploaction.proterties或者yml文件 裏面
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
同時數據庫url也添加 serverTimezone=GMT%2B8
spring.datasource.url=jdbc:mysql://localhost:3306/test?&serverTimezone=GMT%2B8
注:
%2B是urlEncode碼,表示的是 + 號