SpringBoot 时间差8小时&时分秒丢失问题

一、问题描述:

数据表中生日字段类型为:datatime 在 SpringBoot 项目中查询出来发现只有年月日,时分秒丢失,并且时区时间相差8小时。


以上两种方式均可达到格式化时间格式的目的,并且完美解决时区差8小时的问题。


二、解决方案一

在实体类的生日字段上加注解。

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

三、解决方案二

在 application.properties 配置文件中进行全局配置。

# 配置全局时间格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=Asia/Shanghai

这里说明一下为什么用Asia/Shanghai 而不使用GMT+8;
GMT-8是东八区,北京时间和东八区一致。
Asia/Shanghai是已地区命名的地区标准时,在中国叫CST。这个地区标准时会兼容历史各个时间节点。中国1986-1991年实行夏令时,夏天和冬天差1个小时,Asia/Shanghai会兼容这个时间段。
结论:1992年以后,在中国,GMT-8和Asia/Shanghai是一样的时间,1986-1991之间,夏天会有一小时时差。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值