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

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

相关推荐
回忆是昨天里的海4 分钟前
k8s集群-节点间通信之安装kube-flannel插件
java·docker·kubernetes
信仰_27399324316 分钟前
Mybatis-Spring重要组件介绍
java·spring·mybatis
盖世英雄酱5813617 分钟前
java深度调试【第二章通过堆栈分析性能瓶颈】
java·后端
没有bug.的程序员26 分钟前
AOP 原理深剖:动态代理与 CGLIB 字节码增强
java·spring·aop·动态代理·cglib
2401_8370885027 分钟前
ResponseEntity - Spring框架的“标准回复模板“
java·前端·spring
lang201509281 小时前
Spring Boot RSocket:高性能异步通信实战
java·spring boot·后端
白鲸开源1 小时前
(二)从分层架构到数据湖仓架构:数据仓库分层下的技术架构与举例
大数据·数据库·数据分析
阿维的博客日记1 小时前
从夯到拉的Redis和MySQL双写一致性解决方案排名
redis·分布式·mysql
好玩的Matlab(NCEPU)1 小时前
Redis vs RabbitMQ 对比总结
数据库·redis·rabbitmq
21号 11 小时前
16.MySQL 服务器配置与管理
服务器·数据库·mysql