gpt4 book ai didi

java - 如何在 Java 8 中正确使用 ZoneOffset、ZoneId 和 LocalDateTime?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:37 25 4
gpt4 key购买 nike

这里的目标是来回将 LocalDateTime 转换为纪元秒。

假设我将 LocalDateTime 定义为:

LocalDateTime now = LocalDateTime.now();

我想将它转换为亚洲/加尔各答时区的纪元秒,我可以这样做:

long epochSecondNow = now.atZone(ZoneId.of("Asia/Kolkata")).toEpochSecond();

现在,我想从 epochSecondNow 再次生成“现在”:

LocalDateTime 类有一个方法 'ofEpochSecond(long epochSecond,long nanoOfSecond, ZoneOffset zoneOffset)' 以纪元秒、nano of second 和 ZoneOffset 作为参数。

我无法使用“Asia/Kolkata”创建 ZoneOffset。我应该如何为我的区域创建 ZoneOffset 对象才能使用“ofEpochSecond”方法。还有其他办法吗?

谢谢!

最佳答案

尝试使用 Instant.ofEpochSecond

Instant instant = Instant.ofEpochSecond(epochSecondNow);
ZonedDateTime atZone = instant.atZone(ZoneId.of("Asia/Kolkata"));
LocalDateTime localDateTime = atZone.toLocalDateTime();

如果你想使用系统时区,可以使用 ZoneId.systemDefault()

关于java - 如何在 Java 8 中正确使用 ZoneOffset、ZoneId 和 LocalDateTime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34152698/

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