gpt4 book ai didi

不同时区的Java日历对同一时间给出不同的值

转载 作者:行者123 更新时间:2023-11-30 04:28:58 26 4
gpt4 key购买 nike

您好,在下面的代码中我得到的输出为 9 和 10,为什么会发生这种情况?尽管日历属于不同的时区,但我们还是通过相同的日期来设置时间。据我所知,时间是从纪元计算出来的相对值,所以无论什么时区,这个相对值应该是相同的

我的数据库位于一个时区而服务器位于另一个时区,我也面临类似的问题。

Date date = new Date ();
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"),Locale.US);
Calendar c1 = Calendar.getInstance();
c.setTime(date);
c1.setTime(date);
System.out.println(c.get(Calendar.HOUR));
System.out.println(c1.get(Calendar.HOUR));

最佳答案

当您传入日期时,会采用其 UTC 时间戳(即自 1970 年 1 月 1 日以来的毫秒数,采用 GMT+0),然后将两个日历设置为同一时间,并询问现在是几点。

显然,不同时区的时间会有所不同 - 洛杉矶时区和运行代码的计算机的时区,即使它们已使用完全相同的 UTC 时间进行初始化。

关于不同时区的Java日历对同一时间给出不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15104868/

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