How to modify date time (Date Manipulation) – Java

Java Calendar class (java.util.Calendar) is a very useful and handy class in java date time manipulation. here i will demonstrate how to modify date time with calender class.

Get current date time with Calendar()


DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
System.out.println("Current Date Time : " + dateFormat.format(cal.getTime()));

Calender date time manipulation function


//Add one day to current date time
cal.add(Calendar.DATE, 1);

//Add one month to current date time
cal.add(Calendar.MONTH, 1);

//Add one year to current date time
cal.add(Calendar.YEAR, 1);

//Add one hour to current date time
cal.add(Calendar.HOUR, 1);

//Add one minute to current date time
cal.add(Calendar.MINUTE, 1);

//Add one second to current date time
cal.add(Calendar.SECOND, 1);

//Subtract one day from current date
cal.add(Calendar.DATE, -1);

//Subtract one month from current date
cal.add(Calendar.MONTH, -1);

//Subtract one year from current date
cal.add(Calendar.YEAR, -1);

//Subtract one hour from current date
cal.add(Calendar.HOUR, -1);

//Subtract one minute from current date
cal.add(Calendar.MINUTE, -1);

//Subtract one second from current date
cal.add(Calendar.SECOND, -1);

Here is the full source code to show how to modify date time in Java

 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
 
public class DateTimeManipulation {
  public static void main(String[] args) {
 
	   DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
	   //get current date time with Calendar()
	   Calendar cal = Calendar.getInstance();
	   System.out.println("Current Date Time : " + dateFormat.format(cal.getTime()));
	   
	   cal.add(Calendar.DATE, 1);
	   System.out.println("Add one day to current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.MONTH, 1);
	   System.out.println("Add one month to current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.YEAR, 1);
	   System.out.println("Add one year to current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.HOUR, 1);
	   System.out.println("Add one hour to current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.MINUTE, 1);
	   System.out.println("Add one minute to current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.SECOND, 1);
	   System.out.println("Add one second to current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.DATE, -1);
	   System.out.println("Subtract one day from current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.MONTH, -1);
	   System.out.println("Subtract one month from current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.YEAR, -1);
	   System.out.println("Subtract one year from current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.HOUR, -1);
	   System.out.println("Subtract one hour from current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.MINUTE, -1);
	   System.out.println("Subtract one minute from current date : " + dateFormat.format(cal.getTime()));
	   
	   cal = Calendar.getInstance();
	   cal.add(Calendar.SECOND, -1);
	   System.out.println("Subtract one second from current date : " + dateFormat.format(cal.getTime()));	   
 
  }
}

Output

Current Date Time : 2008/12/28 10:24:53
Add one day to current date : 2008/12/29 10:24:53
Add one month to current date : 2009/01/28 10:24:53
Add one year to current date : 2009/12/28 10:24:53
Add one hour to current date : 2008/12/28 11:24:53
Add one minute to current date : 2008/12/28 10:25:53
Add one second to current date : 2008/12/28 10:24:54
Subtract one day from current date : 2008/12/27 10:24:53
Subtract one month from current date : 2008/11/28 10:24:53
Subtract one year from current date : 2007/12/28 10:24:53
Subtract one hour from current date : 2008/12/28 09:24:53
Subtract one minute from current date : 2008/12/28 10:23:53
Subtract one second from current date : 2008/12/28 10:24:52

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

avatar
10 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
9 Comment authors
DeepaFernandoRkMikeEmmanuel Recent comment authors
newest oldest most voted
Fernando
Guest
Fernando

Trying to write a HTML Date Header, http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html I arrived this page …

… and thanks to the combination of SimpleDateFormat (to which I assign the RFC “mandatory” timezone) and an instance of Calendar we can obtain an automatic translation of hour local time to absolute GMT time …

public static String getHTMLDateHeader(){
// http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html

DateFormat dateFormat = new SimpleDateFormat(“EEE, dd MMM YYY HH:mm:ss z”, Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone(“GMT”));
Calendar localDateTime = Calendar.getInstance();

return dateFormat.format(localDateTime.getTime());
}

Thanks everybody!

Deepa
Guest
Deepa

I need program to set manual date and calculate time increment like as second, minute hours , date including leap year and output show in eclipse console

Rk
Guest
Rk

I am a beginner and i work with datas . I have this kind of data “962409600000” and i have to change this data to datetime format and the result was “2000-07-01T05:45:00.000+05:45”.
Please can you help me i need only the date 2000-07-01.

Thanks

Mike
Guest
Mike

recently, working on a big project I loved light-weight Joda-Time framework, which lives here http://joda-time.sourceforge.net/userguide.html#Manipulating_DateTimes

Emmanuel
Guest
Emmanuel

This information is very helpful.
Thank you a million times

Anuj
Guest
Anuj

Very helpful. Thanks a bunch for posting this.

Zamshed Farhan
Guest
Zamshed Farhan

udhay. u may use as follows;

z = 10;
String dt = “2011-02-10”; // Start date
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”);
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, z); // number of days to add
dt = sdf.format(c.getTime());

Zamshed Farhan
Guest
Zamshed Farhan

Very useful. Used in an application already. Thnx a lot to author to share.

Alex Sales
Guest
Alex Sales

Date cant be modified. But it could be used to compare dates by using getTimeInMillis().

udhay
Guest
udhay

this is Calender “cal”
how to modifiy with Date “d”??