在Java中添加n个小时到一个日期?

问题

如何在Date对象中添加n小时?我发现在StackOverflow上使用days的另一个例子,但仍然不明白如何用几个小时来做​​。


#1 热门回答(183 赞)

检查日历类。它有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

CheckAPI了解更多。


#2 热门回答(64 赞)

如果你使用Apache Commons / Lang,则可以使用DateUtils.addHours()一步完成:

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

(原始对象不变)


#3 热门回答(25 赞)

简化@ 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;