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
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐