Java 1.6中的日历 - 奇怪的结果

Guu*_*uus 1 java calendar date

我用这个代码:

        java.util.GregorianCalendar cal1 = new java.util.GregorianCalendar();
        cal1.set(java.util.Calendar.HOUR, 22);
        cal1.set(java.util.Calendar.MINUTE, 20);
        cal1.set(java.util.Calendar.SECOND, 0);

        System.out.println(">>> date=" + cal1.getTime());
Run Code Online (Sandbox Code Playgroud)

当我在15:58运行它打印:

date = Thu Jun 13 10:20:00 CEST 2013

当我在07:00运行它打印:

date = Wed Jun 12 22:20:00 CEST 2013

我总是需要它来打印最后的结果.我可能做错了什么,但我想知道这两个结果的原因取决于我运行它的时间.

Joa*_*uer 14

您正在设置HOUR何时进行设置HOUR_OF_DAY.

HOUR修改"10 AM"或"10 PM"中显示的值.两个10都是相同的值.该字段的"正确"范围是0-11.

HOUR_OF_DAY 是24小时制中指定的小时.