如何在不同时区获取LocalTime?

来源:爱站网时间:2021-12-08编辑:网友分享
我知道LocalTime与时区无关。但我想获得中部标准时间(CST)的小时数。于是就有这个问题出现:如何在不同时区获取LocalTime?爱站技术小编用一篇文章给大家介绍一下具体的内容。

问题描述


我知道LocalTime与时区无关。但我想获得中部标准时间(CST)的小时数。我所得到的只是时间在字符串中:

String start = "11:00" //11 am CST. 
LocalTime startTime = LocalTime.parse(start);

这很好,但是服务器在不同的时区运行。因此它将解释为世界标准时间上午11点。我希望LocalTime在CST中。我需要在CST中进行调用,以便可以调用LocalTime.isAfter方法。

LocalTime currentTime = LocalTime.now();
boolean afterEleven = currentTime.isAfter(startTime);

思路:


[LocalDateTime.now()实际上是LocalDateTime.now(Clock.systemDefaultZone())的快捷方式,其中Clock.class代表某个日期时间点(see docs),而静态方法systemDefaultZone()返回您PC的日期时间点。

在您的情况下,可以在其他区域使用“时钟”(id =“ CST”的区域不存在,但是您可以选择“ America / Chicago”-参见说明in this answer)。

LocalTime currentTime = LocalTime.now(Clock.system(ZoneId.of("America/Chicago")));

UPD无法正确理解任务。在这种情况下,实际上很容易将currentTime而不是startTime转换为所需的区域。

LocalTime currentTime = LocalTime.now(Clock.system(ZoneId.of("Europe/London")));

或者,如Ole V.V.提醒:

LocalTime currentTime = LocalTime.now(ZoneId.of("Europe/London"));

然后您可以将其与未修改的startTime(在这种情况下为11:00)进行比较

以上内容就是爱站技术频道小编为大家分享的如何在不同时区获取LocalTime?,看完以上分享之后,大家应该都知道如何在不同时区获取LocalTime?了吧。

上一篇:R.Java不会创建要怎么办

下一篇:如何将整数数组用于泛型方法?

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载