当我使用GregorianCalendar实例化一个新日期时:
GregorianCalendar myCal = new GregorianCalendar(29,5,2011);
然后,最后,我执行以下代码(期望它返回2011),它返回35.我想知道为什么这样,因为我需要将它与传递的日期(2011)进行比较。 / p>
System.out.println(myCal.get(Calendar.YEAR));
答案 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。