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

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

相关推荐
大鹏说大话14 分钟前
Windows 下将 Java 项目打包为 Docker 容器并部署的完整指南
java·windows·docker
Zachery Pole16 分钟前
JAVA_03_运算符
java·开发语言·前端
张万森爱喝可乐19 分钟前
Java 8 新特性探秘:开启现代Java开发之旅
java
毕设源码-邱学长27 分钟前
【开题答辩全过程】以 基于java的网上书店管理系统为例,包含答辩的问题和答案
java·开发语言
消失的旧时光-194330 分钟前
第二十二课:领域建模入门——从业务中“提炼结构”(认知篇)
java·spring boot·后端·domain
Gogo81632 分钟前
同一个 new,不同的世界:Java 与 TypeScript 对象创建机制的降维打击
java·开发语言·typescript
重生之后端学习34 分钟前
230. 二叉搜索树中第 K 小的元素
java·数据结构·算法·深度优先
我是秦始皇v我50034 分钟前
深入理解Java中的封装思想:从设计到实践
java
golang学习记39 分钟前
Spring Boot 4 升级实战:从3.x到4.0的分步升级保姆级指南
java·spring boot·后端
2501_9419820540 分钟前
2026马年大吉:基于 Java 的企微外部群主动调用体系
java·开发语言·企业微信