Whenever a user enters a date information, we get that as String type. There is a need to convert this String to java.util.Date Object.
Here is where, Java provides a class called SimpleDateFormat available in java.text package which allows for date formatting (date -> text) through format() method and parsing (text -> date) through parse() method.
In this tutorial, we will convert the String in a particular date format to java.util.Date object.
1. Assume the date text (got from user or by any other means) is available in String variable.
String myDateStr = "04/23/2011";
2. Create a SimpleDateFormat object by using the constructor,
public SimpleDateFormat(String pattern)
Constructs a SimpleDateFormat using the given pattern and the default date format symbols for the default locale. Note: This constructor may not support all locales. For full coverage, use the factory methods in the DateFormat class.
Parameters:
pattern – the pattern describing the date and time format
String pattern = "MM/dd/yyyy"; SimpleDateFormat formatter = new SimpleDateFormat(pattern);
3. Now use the parse() method to convert the date in text format to Date object.
Date myDateObj = formatter.parse(myDateStr);
The parse() method throws ParseException. So either surround with try/catch block or add throws statement in the method signature.
Complete Code:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringToDate { public static void main(String[] args) { String myDateStr = "04/23/2011"; String pattern = "MM/dd/yyyy"; SimpleDateFormat formatter = new SimpleDateFormat(pattern); Date myDateObj = null; try { myDateObj = formatter.parse(myDateStr); System.out.println("Date in text format: " + myDateStr); System.out.println("Date in java.util.Date Obj : " + myDateObj); } catch (ParseException e) { e.printStackTrace(); } } }
For converting Date to String refer this tutorial.