數據庫時間和 java 時間不一致解決方案


java添加 date 到數據庫,時間不一致

使用 date 添加到數據庫,數據庫顯示的時候和date時間相差 8 個小時,這是由於 mysql 上的時區的問題,這里有兩個解決方案:

方案一: 設置數據庫連接時區

在 springboot 的配置文件中的 spring.datasource.url 添加后綴 serverTimezone=Asia/Shanghai。設置本地時區。

方案二: 設置 mysql 時區

查看 mysql 時區:

show variables like "%time_zone%";

這里分成修改當前會話和全局會話

  • 修改當前會話只對當前會話有效,退出會話就失效
  • 修改全局會話是要退出當前會話后才有效

修改當前會話:

SET time_zone = "+8:00";

修改全局會話:

SET global time_zone = "+8:00";

這里最好修改全局會話

java 獲取 date 時間和前端展示不一致

后端時間和數據庫時間相差 8 個小時

原因

springboot 中的@RestController 注解接口返回 json 格式數據,對於 date 類型的數據,會被 spring-boot 默認的Jackson框架轉化,而 Jackson 框架默認時區是 GMT(相對於中國少了 8 個小時)。

解決方案

application.yml 添加配置:

spring:
  jackson:
    time-zone: GMT+8

如果覺得文章對你有幫助的話,請點個推薦吧!


免責聲明!

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



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