This tutorial shows you how to work with java.util.Date and java.util.Calendar.

1. Java Date Examples

Few examples to work with Date APIs.
Example 1.1 – Convert Date to String.
 SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
 String date = sdf.format(new Date()); 
 System.out.println(date); //15/01/2014
Example 1.2 – Convert String to Date.
 SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
 String dateInString = "31-08-1982 10:20:56";
 Date date = sdf.parse(dateInString);
 System.out.println(date); //Tue Aug 31 10:20:56 SGT 1982
P.S Refer to this – SimpleDateFormat JavaDoc for detail date and time patterns.
Example 1.3 – Get current date time
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 Date date = new Date();
 System.out.println(dateFormat.format(date)); //2014/01/15 16:16:39

2. Java Calendar Example

Few examples to work with Calendar APIs.
Example 2.1 – Get current date time
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss"); 
 Calendar calendar = new GregorianCalendar(2014,0,31);
 System.out.println(sdf.format(calendar.getTime()));
Output
2014 Jan 31 00:00:00
Example 2.2 – Simple Calendar example
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss"); 
 Calendar calendar = new GregorianCalendar(2014,1,28,13,24,56);
 
 int year       = calendar.get(Calendar.YEAR);
 int month      = calendar.get(Calendar.MONTH); // Jan = 0, dec = 11
 int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); 
 int dayOfWeek  = calendar.get(Calendar.DAY_OF_WEEK);
 int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
 int weekOfMonth= calendar.get(Calendar.WEEK_OF_MONTH);
 
 int hour       = calendar.get(Calendar.HOUR);        // 12 hour clock
 int hourOfDay  = calendar.get(Calendar.HOUR_OF_DAY); // 24 hour clock
 int minute     = calendar.get(Calendar.MINUTE);
 int second     = calendar.get(Calendar.SECOND);
 int millisecond= calendar.get(Calendar.MILLISECOND);
 
 System.out.println(sdf.format(calendar.getTime()));
 
 System.out.println("year \t\t: " + year);
 System.out.println("month \t\t: " + month);
 System.out.println("dayOfMonth \t: " + dayOfMonth);
 System.out.println("dayOfWeek \t: " + dayOfWeek);
 System.out.println("weekOfYear \t: " + weekOfYear);
 System.out.println("weekOfMonth \t: " + weekOfMonth);
 
 System.out.println("hour \t\t: " + hour);
 System.out.println("hourOfDay \t: " + hourOfDay);
 System.out.println("minute \t\t: " + minute);
 System.out.println("second \t\t: " + second);
 System.out.println("millisecond \t: " + millisecond);
Output
2014 Feb 28 13:24:56
year   : 2014
month   : 1
dayOfMonth  : 28
dayOfWeek  : 5
weekOfYear  : 9
weekOfMonth     : 5
hour   : 1
hourOfDay  : 13
minute   : 24
second   : 56
millisecond     : 0
Example 2.3 – Set a date manually.
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
 
 Calendar calendar = new GregorianCalendar(2014,1,28,13,24,56); 
 System.out.println("#1. " + sdf.format(calendar.getTime()));
 
 //update a date
 calendar.set(Calendar.YEAR, 2014);
 calendar.set(Calendar.MONTH, 11);
 calendar.set(Calendar.MINUTE, 33);
 
 System.out.println("#2. " + sdf.format(calendar.getTime()));
Output
#1. 2014 Feb 28 13:24:56
#2. 2014 Dec 28 13:33:56
Example 2.4- Add or subtract from a date.
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd"); 
 
 Calendar calendar = new GregorianCalendar(2014,10,28); 
 System.out.println("Date : " + sdf.format(calendar.getTime()));
 
 //add one month
 calendar.add(Calendar.MONTH, 1);
 System.out.println("Date : " + sdf.format(calendar.getTime()));
 
 //subtract 10 days
 calendar.add(Calendar.DAY_OF_MONTH, -10);
 System.out.println("Date : " + sdf.format(calendar.getTime()));
Output
Date : 2014 Nov 28
Date : 2014 Dec 28
Date : 2014 Dec 18

3. DateValidator example


package com.naresh.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateValidator {

      public boolean isThisDateValid(String dateToValidate, String dateFromat){
             
            if(dateToValidate == null){
                  return false;
            }

            SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
            sdf.setLenient(false);

            try {
                  //if not valid, it will throw ParseException
                  Date date = sdf.parse(dateToValidate);
                  System.out.println(date);

            } catch (ParseException e) {

                  e.printStackTrace();
                  return false;
            }

            return true;
      }

}