踩坑:mysql 查询时间结果少了一天

1.场景:

本人是在 springboot 项目中从数据库获取时间传到前端进行展示,所以在实体类上使用注解 @JsonFormat 进行格式转换。最后发现时间少了一天,最后锁定是 时区 的问题。

@JsonFormat 默认是标准时区的时间,会出现少8小时的情况。使用时,加上时区 timezone="GMT+8"

2.解决方案:

在实体类需要时间转换的字段上加上下面其中任意一个就可以了

@JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")

如果还是解决不了的话,可以试试在 数据库连接url 里面的
serverTimezone 设置为 Asia/Shanghai

jdbc:mysql://x.x.x.x:3306/xxx?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=UTF-8

猜你喜欢

转载自blog.csdn.net/weixin_44200487/article/details/106639217