我正在将代码从 Timestamp
移植到 LocalDateTime
,当我进行测试以从 {获得一毫秒时{1}} 我看到了使用 LocalDateTime
和 Calendar
获取结果的不同结果。
这是我的“测试”:
Date
我不明白为什么会有这些区别。
答案 0 :(得分:2)
您的测试结果是:
1463666880000
1463659680000
1466345280067
每个值都以毫秒为单位。
前两个值之间的差异恰好是两个小时。这是因为在第一行中您设置了 UTC 时区,在第二行中您没有设置任何内容,因此它位于本地时区(事实上,我目前在 UTC + 2 )。
除了毫秒部分之外,第一个和第三个值的差异是一个月。这是因为LocalDateTime.of()
方法期望月份参数表示为1-12,但Calendar.set()
期望月份参数表示为0-11。因此,在第三行中,您实际设置了 06/19/2016 。