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

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

相关推荐
NE_STOP4 分钟前
Redis-持久化之RDB
java
道法自然,人法天19 分钟前
PostgreSQL安装与初始化教程(二进制压缩包)
数据库·postgresql
苍煜33 分钟前
SpringBoot AOP切面编程精讲:实现方式、Spring区别及与自定义注解生产实战
java·spring boot·spring
zx28596340033 分钟前
Laravel5.x版本革新特性全解析
mysql·gateway·智能路由器
yzs8735 分钟前
从Hydra到storage_engine:PostgreSQL列存引擎的性能跃迁与技术进化
数据库·postgresql
胡小禾36 分钟前
企业内部文件处理方案
java
红云梦38 分钟前
官方 Anthropic Postgres MCP Server 存在 SQL 注入漏洞 -- SafeDB 是如何做到 4 层防御的
数据库·sql
TDengine (老段)1 小时前
红有软件重构智能油田时序数据底座,支撑生产实时感知与设备预测性维护
大数据·数据库·人工智能·重构·时序数据库·tdengine
倒霉蛋小马1 小时前
【Redis】什么是缓存击穿?
数据库·redis·缓存
常利兵1 小时前
Spring Boot:别再重复造轮子,这些内置功能香麻了
java·spring boot·后端