gpt4 book ai didi

java - 为什么从 LocalDateTime 获取毫秒和从 Calendar 获取日期之间存在差异?

转载 作者:行者123 更新时间:2023-12-02 03:37:02 25 4
gpt4 key购买 nike

当我进行测试以获得一个LocalDateTime 的毫秒数我发现使用 CalendarDate< 获取结果有差异

这是我的“测试”:

System.out.println(LocalDateTime.of(2016,5,19,14,8,0).toInstant(ZoneOffset.UTC).toEpochMilli());

System.out.println(Timestamp.valueOf(LocalDateTime.of(2016,5,19,14,8,0)).getTime());

Calendar c = Calendar.getInstance(TimeZone.getTimeZone(ZoneId.of("UTC")));
c.set(2016,5,19,14,8,0);

System.out.println(c.getTime().getTime());

我不明白为什么它们之间有区别。

最佳答案

您的测试结果是:

1463666880000
1463659680000
1466345280067

每个值都以毫秒为单位。

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

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

关于java - 为什么从 LocalDateTime 获取毫秒和从 Calendar 获取日期之间存在差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37327177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com