阳历年份

时间:2014-12-11 23:40:10

标签: java

我必须为此代码执行的操作是使用GregorianCalendar类显示一年中的当前年份,月份和日期。由于某种原因,一切都是正确的,但月份。该程序将月份返回为11而不是12.任何建议?

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    GregorianCalendar Calendar = new GregorianCalendar();
    int year = Calendar.get (GregorianCalendar.YEAR);
    int month = Calendar.get (GregorianCalendar.MONTH);
    int day = Calendar.get (GregorianCalendar.DAY_OF_MONTH);

    System.out.println("the current year is " + year);
    System.out.println("the current month is " + month);
    System.out.println("the current day is " + day);
}

3 个答案:

答案 0 :(得分:2)

Java将月份数字存储为Calendar中的0。当您使用MONTH11 does represent December时,这是正确的。您必须在此输出中添加1才能转换为我们习惯使用的内容 - 范围为1-12。

  

格里高利和朱利安日历中一年中的第一个月是1月,这是0

答案 1 :(得分:0)

只需添加+1,java从0开始计算数月即

GregorianCalendar.JANUARY == 0

答案 2 :(得分:0)

Calendar.MONTH从零开始。因此,这是11。

来自API

  

一年中的第一个月是1月,即0;最后取决于   一年中的月数。