gpt4 book ai didi

java - 将客户端的时区与服务器的时区进行比较,如果不同则获取客户端本地时间

转载 作者:行者123 更新时间:2023-12-02 00:59:21 27 4
gpt4 key购买 nike

在我的设置中,我有服务器和客户端,我必须知道它们是否位于同一时区(因此是相同的本地时间)。

客户端可以向服务器发送区域 ID(例如“欧洲/柏林”)、带有夏令时调整的 GMT 时区偏移量 (int) 或不带夏令时调整的原始偏移量 (int)。

如果时区相同,那么我可以假设(如果我错了,请纠正我)客户端本地时间与服务器本地时间相同,否则我必须获取客户端本地时间。

我看到java中有几个类,ZoneIdZoneOffsetTimeZone,我有点困惑该使用哪一个。至于输入,我正在考虑使用区域 ID 或夏令时调整的偏移量。

感谢您的帮助

更新:我只是想补充一点,我所说的服务器时区只是我的引用,并未定义为系统默认值。就我而言,我将其视为 ZoneId.of("Europe/Rome")。

最佳答案

“如果时区相同,那么我可以假设(如果我错了,请纠正我)客户端本地时间与服务器本地时间相同,否则我必须获取客户端本地时间。”,是的。如果客户端时区等于服务器时区,则两个本地时间相同。

TimeZone是旧 Java 类用来处理日期的类。不要使用它。

ZoneId是新的 java.time 中的一个类封装更加坚固并且具有更好的设计。它描述了一个时区,例如“欧洲/柏林”。该类用于在计算中涉及诸如夏令时调整之类的事情。 ZoneId 使用不同的 ZoneOffset根据冬季和夏季进行计算。因此,ZoneOffset 是新包中的类,用于描述特定偏移量,而不考虑其他因素,例如夏令时调整。

由于您对时区的本地时间感兴趣,因此必须在此处使用 ZoneId。您也可以使用 ZoneOffset,但您会丢失有关特定时区的信息,因为多个时区可能具有相同的偏移量。

关于java - 将客户端的时区与服务器的时区进行比较,如果不同则获取客户端本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60914041/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com