【问题标题】:java: Calendar.HOUR_OF_DAY returns incorrect value. Why?java:Calendar.HOUR_OF_DAY 返回不正确的值。为什么?
【发布时间】:2013-03-08 03:05:14
【问题描述】:

下面的java代码:

Calendar calend = Calendar.getInstance(TimeZone
                .getTimeZone("Pacific/Fakaofo"));

        System.out.println(calend.get(Calendar.HOUR_OF_DAY) + ":"
                + calend.get(Calendar.MINUTE) + ":" + calend.get(Calendar.SECOND));

实际结果2:21:19

预期结果1:21:19 (http://www.timeanddate.com/worldclock/city.html?n=738)。

为什么实际结果会多出一小时?

【问题讨论】:

  • 夏令时?
  • 什么是完整日期?
  • @Henrik,2013 年没有夏令时
  • @MarkRotteveel,当前日期
  • 你使用的是什么版本的Java,System.out.println(TimeZone.getTimeZone("Pacific/Fakaofo").inDaylightTime(new Date()));的输出是什么?

标签: java calendar timezone dst


【解决方案1】:

根据Pacific/Fakaofo Time Zone

Wed 20-Mar-2013 02:31 A.M.

所以你的实际结果似乎是正确的。

Tokelau: Wrong local time for over 100 years 可能是答案。实际时区似乎有些混乱。

【讨论】:

  • @NPE 那我很幸运 ;-)
  • 据我所知,您找到的很可能是唯一正确的 :)