Java - GregorianCalendar输出错误的一年?

时间:2012-03-17 20:56:28

标签: java date

当我使用GregorianCalendar实例化一个新日期时:

GregorianCalendar myCal = new GregorianCalendar(29,5,2011);

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

System.out.println(myCal.get(Calendar.YEAR));

2 个答案:

答案 0 :(得分:6)

您是否正在阅读documentation /方法签名?

public GregorianCalendar(int year, int month, int dayOfMonth)

试试这个:

GregorianCalendar myCal = new GregorianCalendar(2011, Calendar.MAY, 29);

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

答案 1 :(得分:0)

您使用的GregorianCalendar构造函数不会将dayOfMonth,month,year视为参数,而是年,月,日.OfMonth。有关详细信息,请参阅JavaDoc