JAVA-解决冬夏令时引起的时间转换错误问题

2024-02-17  本文已影响0人  CodeFarmerYang

记一次踩坑记录:不喜欢看过程的铁子们直接滑到文章最后即可

背景描述:

近期做了一个跨境项目,系统用户分为国内和国外(主要是悉尼)两种,两部分的用户存在时差,并且悉尼实行冬夏令时制,由于初期开发及测试都是在国内进行,并没有发现什么问题,项目内部试运行期间,甲方提出,将所有时间统一由北京时间转换为悉尼时间,之后的一系列问题由此产生。

问题1:new Date获取的是北京时间

timedatectl set-timezone Australia/Sydney

问题2:数据库存的时间与查出来的时间不一致

jdbc:mysql://host:prot/db?characterEncoding=UTF-8&useUnicode=true&serverTimezone=Australia/Sydney

问题3:客户端传入的时间不一致,需统一转换为悉尼时间

@JsonFormat(timezone = "GMT+10", pattern = "dd/MM/yyyy")
private Date startTime;

问题4:存入数据库的时间会比实际时间早

@JsonFormat(timezone = "Australia/Sydney", pattern = "dd/MM/yyyy")
private Date startTime;

总结:

上一篇 下一篇

猜你喜欢

热点阅读