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

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

相关推荐
泡海椒8 分钟前
JQuick-SQL CASE WHEN 与函数:在查询中构建业务字段
数据库·sql
学到老活到老8 分钟前
集合换成线程安全的,就不用加锁了吗?
java·面试
一个天蝎座的程序猿8 分钟前
2TB传感器数据搬迁记:IoTDB数据导入导出实战详解(CSV/SQL/TsFile全踩了一遍)
数据库
charlotte1024102414 分钟前
Redis 简介:从诞生到数据类型,再到缓存三大问题
数据库·redis·缓存
Wang's Blog15 分钟前
Java 项目实战: 交友项目 - 今日佳人:需求分析
java·开发语言·交友
ClouGence24 分钟前
还在用命令行管理 Kafka?开源 CloudDM 让操作更简单
数据库·kafka·开源
余额瞒着我当琳31 分钟前
C++11,发展历史浅谈,初始化列表和对象初始化,右值引用和移动语义
java·开发语言·c++·算法
曹牧38 分钟前
Java:`tools.jar`
java·开发语言·jar
IT枫斗者枫哥39 分钟前
Spring AI文档更新后仍命中旧内容:核对分片ID、来源和版本
java·人工智能