我想了解时态实用程序的底层机制。最近,java中的偏移量和时区
所以,我做了下面的例子:
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
我现在systemDefault是了zoneid欧洲/赫尔辛基(+3小时)
当我们创建new Date()
它有unix时间戳(UTC)。
这是我比较印刷结果的基础。
1.在我的第三个System.out
我有LocalDateTime与已建立的时区systemDefault
但输出实际上是相同的。我预计更大的价值(+3小时)。
2.在第四个输出行我虽然有混乱的结果。我期望与new Date().getTime()
相同的值
需要一些帮助来理解输出。