嗨,在下面的代码中,我得到输出为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));
答案 0 :(得分:2)
当您传入日期时,将采用其UTC时间戳(因此GMT + 0中自01-01-1970以来的毫秒数),然后将两个日历设置为同一时间,并询问它的小时数。 / p>
显然,不同时区的小时数将会有所不同 - 即使用完全相同的UTC时间初始化了L.A时区和运行代码的计算机的时区。