Adding n hours to a date in Java?
Solution 1:
Check Calendar
class. It has add
method (and some others) to allow time manipulation.
Something like this should work:
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 plus one hour
Check API for more.
Solution 2:
If you use Apache Commons / Lang, you can do it in one step using DateUtils.addHours()
:
Date newDate = DateUtils.addHours(oldDate, 3);
(The original object is unchanged)
Solution 3:
To simplify @Christopher's example.
Say you have a constant
public static final long HOUR = 3600*1000; // in milli-seconds.
You can write.
Date newDate = new Date(oldDate.getTime() + 2 * HOUR);
If you use long to store date/time instead of the Date object you can do
long newDate = oldDate + 2 * HOUR;