This article shows you how to add days to the current date, using the classic java.util.Calendar
and the new Java 8 date and time APIs.
1. Calendar.add
Example to add 1 year, 1 month, 1 day, 1 hour, 1 minute and 1 second to the current date.
DateExample.java
package com.favtuts.time; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class AddDaysCurrentDate { private static final DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); public static void main(String[] args) { useLegacyCalendarToAddDays(); } static void useLegacyCalendarToAddDays() { Date currentDate = new Date(); System.out.println(dateFormat.format(currentDate)); // convert date to calendar Calendar c = Calendar.getInstance(); c.setTime(currentDate); // manipulate date c.add(Calendar.YEAR, 1); c.add(Calendar.MONTH, 1); c.add(Calendar.DATE, 1); //same with c.add(Calendar.DAY_OF_MONTH, 1); c.add(Calendar.HOUR, 1); c.add(Calendar.MINUTE, 1); c.add(Calendar.SECOND, 1); // convert calendar to date Date currentDatePlusOne = c.getTime(); System.out.println(dateFormat.format(currentDatePlusOne)); } }
Output
2022/06/05 12:36:56
2023/07/06 13:37:57
2. Java 8 Plus Minus
In Java 8, you can use the plus and minus methods to manipulate LocalDate, LocalDateTime and ZoneDateTime, see the following examples
LocalDateTimeExample.java
package com.favtuts.time; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Date; public class AddDaysCurrentDate { private static final String DATE_FORMAT = "yyyy/MM/dd HH:mm:ss"; private static final DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT); private static final DateTimeFormatter dateFormat8 = DateTimeFormatter.ofPattern(DATE_FORMAT); public static void main(String[] args) { useJava8PlusAndMinusMethods(); } static void useJava8PlusAndMinusMethods() { // Get current date Date currentDate = new Date(); System.out.println("date : " + dateFormat.format(currentDate)); // convert date to localdatetime LocalDateTime localDateTime = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); System.out.println("localDateTime : " + dateFormat8.format(localDateTime)); // plus one localDateTime = localDateTime.plusYears(1).plusMonths(1).plusDays(1); localDateTime = localDateTime.plusHours(1).plusMinutes(2).minusMinutes(1).plusSeconds(1); // convert LocalDateTime to date Date currentDatePlusOneDay = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); System.out.println("\nOutput : " + dateFormat.format(currentDatePlusOneDay)); } }
Output
date : 2022/06/05 12:45:00
localDateTime : 2022/06/05 12:45:00
Output : 2023/07/06 13:46:01
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-basic/time