Java Date Formatting – How to Format Dates

datedate-formatdatetimejava

How to format a string that looks like this

Sat Dec 08 00:00:00 JST 2012

into yyyy-mm-dd i.e.

2012-12-08

From browsing the web, I found this piece of code:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
    String dateInString = "Sat Dec 08 00:00:00 JST 2012";

    try {

        Date date = formatter.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

    } catch (ParseException e) {
        e.printStackTrace();
    }

However, I am unable to modify it to accept the first line (Sat Dec 08 00:00:00 JST 2012) as a string and format that into the yyyy-mm-dd format.

What should I do about this? Should I be attempting to modify this? Or try another approach altogether?

Update: I'm using this from your answers (getting error: Unparseable date: "Sat Dec 08 00:00:00 JST 2012")

public static void main(String[] args) throws ParseException{
        SimpleDateFormat srcFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.JAPANESE);
        SimpleDateFormat destFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.JAPANESE);
        Date date = srcFormatter.parse("Sat Dec 08 00:00:00 JST 2012");
        String destDateString = destFormatter.format(date);
       /* String dateInString = "Sat Dec 08 00:00:00 JST 2012";*/
        System.out.println(destDateString);

        /*try {

            Date date = formatter.parse(dateInString);
            System.out.println(date);
            System.out.println(formatter.format(date));

        } catch (ParseException e) {
            e.printStackTrace();
        }*/
    }
}

Best Answer

Try this -

SimpleDateFormat srcFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.JAPANESE);
SimpleDateFormat destFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.JAPANESE);
Date date = srcFormatter.parse("Sat Dec 08 00:00:00 JST 2012");
String destDateString = destFormatter.format(date);
Related Question