【发布时间】:2015-10-06 16:51:16
【问题描述】:
您能否说明如何为默认系统时区和给定时区获取正确的纪元时间(以毫秒为单位)。
给定
1。时区:GMT+3
2。以下代码sn -p:
import java.time.*;
public class Main {
public static void main(String[] args) {
System.out.println(LocalDateTime
.now()
.atZone(ZoneOffset.UTC)
.toInstant()
.toEpochMilli()
);
System.out.println(LocalDateTime
.now()
.atZone(ZoneOffset.of("+3"))
.toInstant()
.toEpochMilli()
);
System.out.println(System.currentTimeMillis());
}
}
3。输出:
1444158955508
1444148155508
1444148155508
4。 System.currentTimeMillis() 的 JavaDoc 告诉返回值将是 当前时间与 UTC 1970 年 1 月 1 日午夜之间的差异,以毫秒为单位。
那么,为什么
-
LocalDateTime在GMT+3的输出与System.currentTimeMillis()相同,尽管System.currentTimeMillis()的文档提到UTC? -
LocalDateTime在UTC的输出与System.currentTimeMillis()不同,尽管System.currentTimeMillis()的文档提到UTC?
【问题讨论】:
标签: java datetime timezone java-8 java-time