In this tutorial we will see how to convert a String to Date in Java.
Convert String to Date: Function
After this section I have shared a complete example to demonstrate String to Date conversion in various date formats. For those who just want a function for this conversion, here is the function code:
public Date convertStringToDate(String dateString)
{
    Date date = null;
    Date formatteddate = null;
    DateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
    try{
        date = df.parse(dateString);
        formatteddate = df.format(date);
    }
    catch ( Exception ex ){
        System.out.println(ex);
    }
    return formatteddate;
}
Example program for string to date conversion
package beginnersbook.com;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDateDemo{
   public static void main(String args[])
   {
       String testDateString = "02/04/2014";
       String testDateString2 = "02-04-2014 23:37:50";
       String testDateString3 = "02-Apr-2014";
       String testDateString4 = "04 02, 2014";
       String testDateString5 = "Thu, Apr 02 2014";
       String testDateString6 = "Thu, Apr 02 2014 23:37:50";
       DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
       DateFormat df2 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
       DateFormat df3 = new SimpleDateFormat("dd-MMM-yyyy");
       DateFormat df4 = new SimpleDateFormat("MM dd, yyyy");
       DateFormat df5 = new SimpleDateFormat("E, MMM dd yyyy");
       DateFormat df6 = new SimpleDateFormat("E, MMM dd yyyy HH:mm:ss");
       try
       {
           //format() method Formats a Date into a date/time string. 
           Date d1 = df.parse(testDateString);
           System.out.println("Date: " + d1);
           System.out.println("Date in dd/MM/yyyy format is: "+df.format(d1));
           Date d2 = df2.parse(testDateString2);
           System.out.println("Date: " + d2);
           System.out.println("Date in dd-MM-yyyy HH:mm:ss format is: "+df2.format(d2));
           Date d3 = df3.parse(testDateString3);
           System.out.println("Date: " + d3);
           System.out.println("Date in dd-MMM-yyyy format is: "+df3.format(d3));
           Date d4 = df4.parse(testDateString4);
           System.out.println("Date: " + d4);
           System.out.println("Date in MM dd, yyyy format is: "+df4.format(d4));
           Date d5 = df5.parse(testDateString5);
           System.out.println("Date: " + d5);
           System.out.println("Date in E, MMM dd yyyy format is: "+df5.format(d5));
           Date d6 = df6.parse(testDateString6);
           System.out.println("Date: " + d6);
           System.out.println("Date in E, E, MMM dd yyyy HH:mm:ss format is: "+df6.format(d6));
       }
       catch (Exception ex ){
          System.out.println(ex);
       }
   }
}
Output:
Date: Wed Apr 02 00:00:00 IST 2014 Date in dd/MM/yyyy format is: 02/04/2014 Date: Wed Apr 02 23:37:50 IST 2014 Date in dd-MM-yyyy HH:mm:ss format is: 02-04-2014 23:37:50 Date: Wed Apr 02 00:00:00 IST 2014 Date in dd-MMM-yyyy format is: 02-Apr-2014 Date: Wed Apr 02 00:00:00 IST 2014 Date in MM dd, yyyy format is: 04 02, 2014 Date: Wed Apr 02 00:00:00 IST 2014 Date in E, MMM dd yyyy format is: Wed, Apr 02 2014 Date: Wed Apr 02 23:37:50 IST 2014 Date in E, E, MMM dd yyyy HH:mm:ss format is: Wed, Apr 02 2014 23:37:50
Sagarika Rayudu says
What if the date is of HTTP/1.1 format?i.e, in addition to df6 there is a timezone too? How do we then convert a string to date?
EG: “Mon, Feb 9 2015 00:02:12 GMT”
prabhat says
All given matreials are mind blowing.
but request you,please post spring contents
Vikas Chauhan says
There is a correction in following statement in your code:
DateFormat df3 = new SimpleDateFormat(“dd-MMM-yyyy”);
Use “dd-mm-yyyy” instead of dd-mmm-yyyy”. correction in month format please correct it.
SYAMKUMAR CM says
“Date d2 = df2.parse(testDateString2);
System.out.println(“Date: ” + d2);
System.out.println(“Date in dd-MM-yyyy HH:mm:ss format is: “+df2.format(d2));”
The above code can print the Date in the given format but cannot save the date in a variable.