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.