Web系统时区问题

一. 时区说明

每一个国家对应的时间都是不同的,也就是具有时差,他们都是以标准时间为基准,然后再此上加上时区的概念,从而统一整个世界的时间。

原来标准时间是以格林尼治标准时间(GMT,旧译“格林威治平均时间”或“格林威治标准时间”)为基准,也就是GMT,现在是以UTC为基准,也就是国际协调时间, 协调世界时,又称世界统一时间,世界标准时间,国际协调时间。

可以理解GMT就是等于UTC,GMT是UTC民间的叫法。

二、jackson时区介绍(减去一天的问题)

jackson是springmvc自带的一种序列化工具,当前端请求controller层,那么返回的json对象都是需要jackson进行序列化,那么就涉及到日期到格式的序列,如果是date格式的话,jackson会对日期格式进行时区转换,如果date值是 2022-02-04 , jackson默认的时区是0时区也就是会相对中国-8个小时,也就是将 2022-02-04 会减去8个小时,从而返回给前端的值是 2022-02-03,从而导致减去一天。

  1. 在返回实体对象中使用@JsonFormat( timezone = “GMT+8”)指定时区
  2. 配置 jackson: time-zone: GMT+8 默认全部是以GMT+8进行转换。

三、datetime \ timestamp 介绍

timestamp存储的时间与时区有关,变换时区数据会受影响;datetime与时间无关, 所以工作中要尽量用datetime。如果要做时区的转换,可以将对应的时区数据转成格林尼治时间日期存入到数据库,再以其他的时区进行转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值