Имея часы и минуты, есть ли более простой или лучший способ установить его в объект календаря, чем:
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), hour, minute);
С здесь :
calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, minute);
Использовать set (поле int, значение int) . Первый параметр - это номер поля для HOUR / MINUTE / SECOND.
В 2018 году никто не должен больше использовать класс Calendar. Он давно устарел, и с java.time современным API даты и времени Java гораздо приятнее работать. Вместо этого используйте, в зависимости от ваших точных требований, ZonedDateTime или, возможно, OffsetDateTime или LocalDateTime. В любом случае установите время суток следующим образом:
Calendar
java.time
ZonedDateTime
OffsetDateTime
LocalDateTime
dateTime = dateTime.with(LocalTime.of(hour, minute));
Ссылка : Учебное пособие по Oracle Дата Время