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

时间:2013-06-12 14:01:48

标签: java date calendar

我使用此代码:

        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());

当我在15:58运行它时会打印出来:

  
    
      

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

    
  

当我在07:00运行它时会打印出来:

  
    
      

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

    
  

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

1 个答案:

答案 0 :(得分:14)

您应该在设置HOUR时设置HOUR_OF_DAY

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

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