Java - GregorianCalendar输出错误的一年?

mar*_*ark 0 java date

当我使用GregorianCalendar实例化一个新的日期时,如下所示:

GregorianCalendar myCal = new GregorianCalendar(29,5,2011);
Run Code Online (Sandbox Code Playgroud)

然后,最后,我执行以下代码(期望它返回2011),它返回35.我想知道为什么这样,因为我需要将它与传递日期(2011)进行比较.

System.out.println(myCal.get(Calendar.YEAR));
Run Code Online (Sandbox Code Playgroud)

Tom*_*icz 6

你甚至阅读文档 /方法签名?

public GregorianCalendar(int year, int month, int dayOfMonth)
Run Code Online (Sandbox Code Playgroud)

试试这个:

GregorianCalendar myCal = new GregorianCalendar(2011, Calendar.MAY, 29);
Run Code Online (Sandbox Code Playgroud)

顺便说一句:第五个月实际上是六月,我想你想要五月(月份是0个月).为避免混淆,请使用常数Calendar.MAY(等于4 ......)