Search code examples
javadatestring-to-datetime

Converting String Format Date for Date Object


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); 
        }
    }
}

Solution

  • 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();
    }