关于@JsonFormat注解,前台显示数据比数据库少一天

博主在使用@JsonFormat注解处理日期时间格式时遇到一个奇怪的问题,前端时间显示比实际少一天。经过排查,发现问题出在timezone参数的位置。原本配置为`@JsonFormat(timezone=GMT+8 pattern=yyyy-MM-dd)`,改为`@JsonFormat(pattern=yyyy-MM-dd timezone=GMT+8)`后,时间显示恢复正常。原因未知,期待大神解答。

        这两天碰到一个很头疼的bug,网上没有搜到解决方案,最后自己找到,就写出来避免有人也跟我碰到同样问题.

        @JsonFormat这个注解大家应该都用过,就是将实体类中的date时间类型可以以字符串形式显示前台,就是我们常见的2000-1-1或者2000/1/1这种,但是我在编写过程中,注解添加无误(至少我这么认为),前台时间显示就是少一天,我后台和数据库全是正确的,所以肯定是前台获取数据除了问题,但是注解也加了呀,有啥问题,后来发现很简单......

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

实体类注解刚开始是这么写的,也没啥错误呀....

但当我把注解参数稍微修改一下后...

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

就正常了~~~时间显示正确了!就很无语

也就是timezone = "GMT+8"必须放后面.具体我也不知道为啥,可能是格式没转换之前修改时区timezone = "GMT+8"这个无效?有大神路过欢迎讲解一下

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值