Как добавить n часов к объекту Date? Я нашел другой пример использования дней в StackOverflow, но все еще не понимаю, как это сделать с часами.
Чтобы упростить пример @Christopher.
Скажем, у вас есть константа
public static final long HOUR = 3600*1000; // in milli-seconds.
Вы можете писать.
Date newDate = new Date(oldDate.getTime() + 2 * HOUR);
Если вы используете long для хранения даты/времени вместо объекта Date, вы можете сделать
long newDate = oldDate + 2 * HOUR;
DateTime dt = new DateTime();
DateTime added = dt.plusHours(6);
Проверьте класс календаря. Он имеет метод add
(и некоторые другие), позволяющие манипулировать временем. Что-то вроде этого должно работать.
Calendar cal = Calendar.getInstance(); // creates calendar
cal.setTime(new Date()); // sets calendar time/date
cal.add(Calendar.HOUR_OF_DAY, 1); // adds one hour
cal.getTime(); // returns new date object, one hour in the future
Подробнее см. API.
Если вы используете Apache Commons/Lang, вы можете сделать это за один шаг, используя DateUtils.addHours()
:
Date newDate = DateUtils.addHours(oldDate, 3);
(исходный объект не изменился)
Что-то вроде:
Date oldDate = new Date(); // oldDate == current time
final long hoursInMillis = 60L * 60L * 1000L;
Date newDate = new Date(oldDate().getTime() +
(2L * hoursInMillis)); // Adds 2 hours