У меня есть следующий фрагмент кода.Установка года в календаре
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/YYYY HH:mm");
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, 2016);
cal.set(Calendar.MONTH, 11);
cal.set(Calendar.DAY_OF_MONTH, 31);
cal.set(Calendar.HOUR_OF_DAY, 22);
Date start = cal.getTime();
System.out.println(dateFormat.format(start));
cal.set(Calendar.YEAR, 2017);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 5);
Date end = cal.getTime();
System.out.println(dateFormat.format(end));
Он печатает:
31/12/2016 22:00
01/01/2016 05:00
Я ожидаю, что год второго дня является 2017. Что происходит? Я использую Java 1.7.
Какова ваша 'датаформат'? –
Я получил '31-12-2016 22: 00' и' 01-01-2017 05: 00' – GurV
Я только что запустил ваш код, и он кажется прекрасным, напечатал 2017, без проблем. Можете ли вы обновить код в полной версии? может быть, что-то вне этого может влиять? как нить? – Josh