如何在不同时区获取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不会创建要怎么办
下一篇:如何将整数数组用于泛型方法?