在全局同步系统架构中转换日期时间的最佳方法

swa*_*ami 2 java datetime

我们正在开发一个Customer Data Integration项目(使用Java 8),该项目有一个与其他国家/地区的本地数据库保持同步的中央数据库.

当新的或更新的联系请求从本地系统到我们的中央系统时,传递modifiedAt值(这是其时区中的本地日期时间戳值)

我们将其转换为UTC并将其存储在我们的数据库中.(为此,我们存储每个系统的时区偏移量).当任何系统请求联系对象时,我们将存储的modifiedAt值从UTC转换为其本地日期时间.

这是最好的方法吗?那么夏令时的问题呢?中央系统是否需要跟踪DST何时开始和停止每个本地系统?

提前致谢

JB *_*zet 6

不存储时区偏移量.存储时区本身.

由于夏令时,"欧洲/巴黎"的偏差在冬季和夏季有所不同.

但如果我知道时区是"欧洲/巴黎",我能够可靠地将任何法国本地日期转换为UTC时间戳,因为我可以找到该本地日期的正确偏移量.

(实际上,我可以可靠地转换几乎任何日期,因为当时间从凌晨3点回到凌晨2点时,一些本地日期是不明确的.

为什么本地系统不直接提供UTC时间戳,而不是提供本地日期时间?