Из любопытства, почему я получаю IllegalArgumentException
для MONTH
в приведенном ниже тестовом примере?
public class Testing {
public static void main(String args[]) {
Calendar c = Calendar.getInstance(Locale.getDefault());
c.setLenient(false);
Date d = new Date();
c.set(Calendar.MONTH, Calendar.FEBRUARY);
c.set(Calendar.DAY_OF_MONTH, 30);
c.set(Calendar.YEAR, 2010);
d = c.getTime(); //Exception is not thrown until this line
System.out.println(d.toString());
}
}
Я посмотрел на GregorianCalendar, который по умолчанию установлен в моей системе, и понял,что поле MONTH
на самом деле будет первым, которое будет отличаться в двух 30 февраля, по сравнению с 2 марта в этом случае, но не должно ли это IllegalArgumentException
быть причиной переполнения, или это было просто трудно"обнаружить"?