为什么从LocalDateTime获取毫秒和从日历获取Date之间的差异?

时间:2016-05-19 15:03:28

标签: java date milliseconds

我正在将代码从 Timestamp 移植到 LocalDateTime ,当我进行测试以从 {获得一毫秒时{1}} 我看到了使用 LocalDateTime Calendar 获取结果的不同结果。

这是我的“测试”:

Date

我不明白为什么会有这些区别。

1 个答案:

答案 0 :(得分:2)

您的测试结果是:

1463666880000
1463659680000
1466345280067

每个值都以毫秒为单位。

  • 前两个值之间的差异恰好是两个小时。这是因为在第一行中您设置了 UTC 时区,在第二行中您没有设置任何内容,因此它位于本地时区(事实上,我目前在 UTC + 2 )。

  • 除了毫秒部分之外,第一个和第三个值的差异是一个月。这是因为LocalDateTime.of()方法期望月份参数表示为1-12,但Calendar.set()期望月份参数表示为0-11。因此,在第三行中,您实际设置了 06/19/2016