我有一个Oracle DB运行在两个位置的实例--美国和欧洲。连接到这些服务器的java应用服务器也位于不同的位置。例如,美国的DB与印度的java服务器连接,欧洲的DB与日本的java服务器连接。我的任务是从美国的数据库中挑选一个日期,然后通过卡夫卡发送到欧洲,反之亦然。
问题是,我从第一个区域发送的时间与其他地区的时间不匹配。我想要的是,如果我从美国发送“22-8月-2022 12:00”,它应该在欧洲被转换成同等的时间,即“22-8月-2022 06:00:00”(仅取决于DB时间,而不是应用服务器时间)。
我对这个问题的看法是,我会从一个区域取UTC时间,然后将它发送到目的地区域,插入等效的时间。但我所做的一切都是因为缺乏经验而没有发挥作用。我无法在java中获得正确的UTC时间戳。
有人能建议解决这个问题的最佳方法吗?这个方法负责在DB级别上转换和获取时间戳。
编辑:-
PS:请忽略给定示例中的时间转换逻辑。这只是一个例子,也许它实际上是不正确的。请提供关于时间转换的一般性建议。
发布于 2022-08-12 14:22:07
最被接受的解决办法是:
consistent.
至于如何转换为UTC,也许这个答案可以帮助您:Java: How do you convert a UTC timestamp to local time?
https://stackoverflow.com/questions/73335265
复制相似问题