Java - GregorianCalendar выводит неправильный год? - PullRequest
0 голосов
/ 18 марта 2012

Когда я создаю новую дату, используя GregorianCalendar, например:

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

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

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

Ответы [ 2 ]

6 голосов
/ 18 марта 2012

Вы даже читаете документацию / подписи методов?

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

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

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

И кстати: 5-й месяц на самом деле июнь, я думаю, вы хотели май (месяцы основаны на 0). Чтобы избежать путаницы, используйте константы, такие как Calendar.MAY (равно 4 ...)

0 голосов
/ 18 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...