【发布时间】:2016-04-14 17:01:16
【问题描述】:
我试图了解时间效用的基本机制。
所以,我做了下一个例子:
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 是欧洲/赫尔辛基(+3 小时)
当我们创建 new Date() 时,它具有 unix 时间戳 (UTC)。
这是我比较打印结果的基点。
1.在我的第三个System.out 中,我有已建立时区systemDefault 的LocalDateTime,但输出实际上是相同的。我期望更大的价值(+3 小时)。
2. 在第四个输出行我虽然有令人困惑的结果。我期望与new Date().getTime() 具有相同的值
需要一些帮助来理解输出。
【问题讨论】:
标签: java timezone timezone-offset