gpt4 book ai didi

java - 为什么 Clock.systemDefaultZone().instant() 返回的时间与 LocalTime.now() 不同?

转载 作者:行者123 更新时间:2023-11-29 04:20:42 25 4
gpt4 key购买 nike

为什么 Clock.systemDefaultZone().instant() 返回的时间与 LocalTime.now() 不同?

我知道 LocalTime 没有时区,但它显示的正是我的系统时钟(在我计算机的托盘中)显示的时间,对吗?两者都“使用”默认时区 (Europe/Moscow),所以时间应该相同吗?

我的电脑时钟是Europe/Moscow,所以两者都应该准确显示我的电脑时间吗?

System.out.println(Clock.systemDefaultZone().instant()); // 2018-03-19T10:10:27.156Z
System.out.println(Clock.systemDefaultZone().getZone()); // Europe/Moscow

System.out.println(LocalTime.now()); // 13:10:27.166

最佳答案

如果我发现正确,.instant() 返回的 Instant 不会处理任何时区信息。使用正确的时区(Clock.systemDefaultZone().getZone() 返回的 ZoneId),您可以从 Instant 中获取 ZonedDateTime(虽然确实提供时区信息)。

例子

System.out.println(Clock.systemDefaultZone().instant());
System.out.println(Clock.systemDefaultZone().instant().atZone(Clock.systemDefaultZone().getZone()));

输出

2018-03-19T10:30:47.032Z
2018-03-19T13:30:47.048+03:00[Europe/Moscow]

关于java - 为什么 Clock.systemDefaultZone().instant() 返回的时间与 LocalTime.now() 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49360469/

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