I am getting a Date format in String as Output like this.
Fri May 18 00:00:00 EDT 2012
I need to Convert this to a Date Object. What approach shall I use?
Thank you.
This is the program i used.
import java.util.*;
import java.text.*;
public class DateToString {
public static void main(String[] args) {
try {
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'EDT' yyyy ");
date = (Date)formatter.parse("Fri May 18 00:00:00 EDT 2012");
String s = formatter.format(date);
System.out.println("Today is " + s);
} catch (ParseException e) {
System.out.println("Exception :"+e);
}
}
}
Use SimpleDateFormat
and implementations to get a date displayable in a format you want.
Example:
String myDateString = "Fri May 18 00:00:00 EDT 2012";
SimpleDateFormat dateFormat = new SimpleDateFormat();
dateFormat.applyPattern( "EEE MMM dd HH:mm:ss z yyyy" );
try {
Date d = dateFormat.parse( myDateString );
System.out.println( d ); // Fri May 18 00:00:00 EDT 2012
String datePattern1 = "yyyy-MM-dd";
dateFormat.applyPattern( datePattern1 );
System.out.println( dateFormat.format( d ) ); // 2012-05-18
String datePattern2 = "yyyy.MM.dd G 'at' HH:mm:ss z";
dateFormat.applyPattern( datePattern2 );
System.out.println( dateFormat.format( d ) ); // 2012.05.18 AD at 00:00:00 EDT
String datePattern3 = "yyyy.MM.dd G 'at' HH:mm:ss Z";
dateFormat.applyPattern( datePattern3 );
System.out.println( dateFormat.format( d ) ); // 2012.05.18 AD at 00:00:00 -400
}
catch ( Exception e ) { // ParseException
e.printStackTrace();
}
Have a look at: java.text.SimpleDateFormat Java API
SimpleDateFormat dateParser = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy",
Locale.US);
Date date = dateParser.parse("Fri May 18 00:00:00 EDT 2012");
Update: note to self, locale can be important.
Use SimpleDateFormat
with the following pattern:
EEE MMM dd HH:mm:ss 'EDT' YYYY
This doesn't worry about Timezone, Alternatively, with timezone inclusion: (untested) EEE MMM dd HH:mm:ss z YYYY
(it's a lowercase z
). Bear in mind, I haven't tested it yet (as I'm on my way home from work).