Java获取的时间与mysql数据库的不一致

这是因为mysql上时区的问题,有两种解决方法。

方法一:设置数据库连接时区

Lua 复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/yourDataBase?useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: your password
    driver-class-name: com.mysql.cj.jdbc.Driver

方法二: 设置 mysql 时区

查看 mysql 时区:

Lua 复制代码
show variables like "%time_zone%";

这里分成修改当前会话和全局会话

  • 修改当前会话只对当前会话有效,退出会话就失效
  • 修改全局会话是要退出当前会话后才有效

修改当前会话:

Lua 复制代码
SET time_zone = "+8:00";

修改全局会话:

Lua 复制代码
SET global time_zone = "+8:00";

这里最好修改全局会话

java 获取 date 时间和前端展示不一致

后端时间和数据库时间相差 8 个小时

原因

springboot 中的@RestController 注解接口返回 json 格式数据,对于 date 类型的数据,会被 spring-boot 默认的Jackson框架转化,而 Jackson 框架默认时区是 GMT(相对于中国少了 8 个小时)。

解决方案

application.yml 添加配置:

Lua 复制代码
spring:
  jackson:
    time-zone: GMT+8

就是这样,看到这里点个赞吧!

相关推荐
人活一口气7 小时前
Spring Boot与AIGC的完美结合:从零搭建智能内容生成平台
java·spring boot·aigc
SelectDB7 小时前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶8 小时前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
像我这样帅的人丶你还9 小时前
Java 后端详解(三):全局异常处理与 JPA 数据库映射
java·后端
NE_STOP9 小时前
vibe Coding -- 小项目实战
java
掉头发的王富贵11 小时前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils11 小时前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
未秃头的程序猿15 小时前
Java 26正式发布!这3个新特性,让代码量直接减半
java·后端·面试
用户2986985301415 小时前
Word 文档文本查找与替换的 Java 实现方案
java·后端
阿哉15 小时前
Nacos 服务发现源码:藏在背后的两套事件机制,90%的人只讲了一半
java