解决时区差异:前端时间显示问题的技术要点与解决方案

解决方法:

指定 JSON 序列化后的时区

如果不指定时区,默认会少8小时。

spring:
  jackson:
    time-zone: GMT+8

image


问题:

image

在前端执行添加保存后,后端接口调用执行插入数据库。直接去数据库中查询是正确的,所以前端也没有问题。然后就卡住了,直接就是一手询问。

发现 JSON 序列化时间时会丢掉 TIME-ZONE,需要手动在 XML 中指定或者在实体类的时间字段上添加对应注解。

图中数据库的时间是正确的,但前端的时间需要减去8小时。

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")

误区:

疯狂修改数据库时区信息,然后数据库服务无限重启。

只需要查询时区指定是否为 system 或者 shanghai。

SELECT @@global.time_zone;
SELECT @@session.time_zone;

结果是 SYSTEM

posted @ 2024-02-24 19:38  rainsc  阅读(244)  评论(0编辑  收藏  举报