2012-03-17 3 views
0

Когда я создаю экземпляр новую дату, используя GregorianCalendar как это:Java - GregorianCalendar выводит неверный год?

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

Тогда, наконец, я выполняю следующий код (ожидая его, чтобы вернуться в 2011 году), и она возвращается 35. Я задаюсь вопросом, почему это , так как мне нужно будет сравнить его с прошедшей датой (2011).

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

ответ

6

Вы даже читаете сигнатуры метода documentation /?

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

Попробуйте это:

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

И КСТАТИ: пятый месяц на самом деле июня, я предполагаю, что вы хотели мая (месяцы 0 на основе). Чтобы избежать путаницы, используйте константы, такие как (равный 4 ...)

0

Конструктор GregorianCalendar, который вы используете, не ожидает, что dayOfMonth, месяц, год в качестве аргументов, но год, месяц, деньOfMonth. Подробности см. На странице JavaDoc.

Смежные вопросы