gpt4 book ai didi

java - java中的日期、偏移量和时区

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

我正在尝试了解时间效用的潜在机制。

所以,我做了下一个例子:

public class Test {
public static void main(String[] args) {

System.out.println(Instant.now().getEpochSecond());
System.out.println(new Date().getTime());
System.out.println(LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond());
System.out.println(LocalDateTime.now().toEpochSecond(ZoneOffset.UTC));

System.out.println(ZoneId.systemDefault().toString());
}
}

输出是:

1460651620
1460651620182
1460651620
1460662420
Europe/Helsinki

我当前的系统默认 zoneId 是 Europe/Helsinki(+3 小时)
当我们创建 new Date() 时,它具有 unix 时间戳 (UTC)。

这是我比较打印结果的基点。

1. 在我的第三个 System.out 中,我有 LocalDateTime 和已建立的时区 systemDefault 但输出实际上是相同的。我期待更大的值(value)(+3 小时)。

2. 在第四行输出中,我虽然得到了令人困惑的结果。我希望 new Date().getTime()

的值相同

需要一些帮助来理解输出。

最佳答案

getEpochSecond()toEpochSecond() 类型的任何方法都会为您提供自 1970-01-01T00:00:00Z 纪元以来的秒数,无论在哪个时区,时间都以相同的方式运行,因此无论选择哪个时区,结果都是相同的。

假设你在你的时区花了 10 分钟写这个问题,在我的时区也将是同样的 10 分钟。

关于java - java中的日期、偏移量和时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629485/

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