Добавляете n часов к дате в Java?

Как добавить n часов к объекту Date? Я нашел другой пример использования дней в StackOverflow, но все еще не понимаю, как это сделать с часами.

132
задан Reimius 15 September 2014 в 18:57
поделиться

5 ответов

Чтобы упростить пример @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;
29
ответ дан 24 November 2019 в 00:07
поделиться

С Joda-Time

DateTime dt = new DateTime();
DateTime added = dt.plusHours(6);
23
ответ дан 24 November 2019 в 00:07
поделиться

Проверьте класс календаря. Он имеет метод 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.

202
ответ дан 24 November 2019 в 00:07
поделиться

Если вы используете Apache Commons/Lang, вы можете сделать это за один шаг, используя DateUtils.addHours():

Date newDate = DateUtils.addHours(oldDate, 3);

(исходный объект не изменился)

76
ответ дан 24 November 2019 в 00:07
поделиться

Что-то вроде:

Date oldDate = new Date(); // oldDate == current time
final long hoursInMillis = 60L * 60L * 1000L;
Date newDate = new Date(oldDate().getTime() + 
                        (2L * hoursInMillis)); // Adds 2 hours
14
ответ дан 24 November 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: