gpt4 book ai didi

java - 如何获取太平洋标准时间 (PST) 到午夜的毫秒数

转载 作者:行者123 更新时间:2023-11-30 07:11:02 24 4
gpt4 key购买 nike

我需要获取从现在到“America/Los_Angeles”(太平洋标准时间)午夜之间的毫秒数。

midnightAtPST = ???;

long millis = ChronoUnit.MILLIS.between(now, midnightAtPST) ???

这是我现在所拥有的,它给出了错误的值:

LocalDateTime midnight = LocalDateTime.now().toLocalDate().atStartOfDay().plusDays(1);
Instant midnigthPST = midnight.atZone(ZoneId.of("America/Los_Angeles")).toInstant();
Instant now = LocalDateTime.now().toInstant(ZoneOffset.UTC);

long millis = ChronoUnit.MILLIS.between(now, midnigthPST);

最佳答案

由于您对特定区域的时间感兴趣,因此请勿使用 LocalDateTime,它没有时区的概念,而应使用 ZonedDateTime

您可以使用 ZonedDateTime.now(zone) 获取给定区域的当前日期静态工厂。然后,您可以使用方法 atStartOfDay(zone) 获取给定时区的午夜(第二天)日期。在 LocalDate 类型上。

ZoneId zoneId = ZoneId.of("America/Los_Angeles");
ZonedDateTime now = ZonedDateTime.now(zoneId);
ZonedDateTime midnight = LocalDate.now().atStartOfDay(zoneId).plusDays(1);

long millis = ChronoUnit.MILLIS.between(now, midnight);

这将正确返回洛杉矶当前日期与第二天开始之间的毫秒数。

关于java - 如何获取太平洋标准时间 (PST) 到午夜的毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39248102/

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