我知道LocalTime是时区不可知论者.但我想要在中央标准时间(CST)的时间。我所得到的只是一串时间:
String start = "11:00" //11 am CST.
LocalTime startTime = LocalTime.parse(start);这很好,但是服务器运行在不同的时区。所以它将解释为世界协调时间上午11点。我想让LocalTime加入科技委。我需要在CST中调用LocalTime.isAfter方法。
LocalTime currentTime = LocalTime.now();
boolean afterEleven = currentTime.isAfter(startTime);发布于 2020-02-24 19:40:20
LocalDateTime.now()实际上是LocalDateTime.now(Clock.systemDefaultZone())的快捷方式,Clock.class表示某些日期时间瞬间(见文档),静态方法systemDefaultZone()返回PC的日期时间瞬间。
在您的情况下,可以为不同的区域使用"clock“( id="CST”的区域不存在,但是您可以选择"America/Chicago“-参见Expression在这个答案中)。
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)
https://stackoverflow.com/questions/60382587
复制相似问题