javadatetime

How to add one day to a date?


I want to add one day to a particular date. How can I do that?

Date dt = new Date();

Now I want to add one day to this date.


Solution

  • Given a Date dt you have several possibilities:

    Solution 1: You can use the Calendar class for that:

    Date dt = new Date();
    Calendar c = Calendar.getInstance(); 
    c.setTime(dt); 
    c.add(Calendar.DATE, 1);
    dt = c.getTime();
    

    Solution 2: You should seriously consider using the Joda-Time library, because of the various shortcomings of the Date class. With Joda-Time you can do the following:

    Date dt = new Date();
    DateTime dtOrg = new DateTime(dt);
    DateTime dtPlusOne = dtOrg.plusDays(1);
    

    Solution 3: With Java 8 you can also use the new JSR 310 API (which is inspired by Joda-Time):

    Date dt = new Date();
    LocalDateTime.from(dt.toInstant()).plusDays(1);
    

    Solution 4: With org.apache.commons.lang3.time.DateUtils you can do:

    Date dt = new Date();
    dt = DateUtils.addDays(dt, 1)