stretchr
stretchr

Reputation: 615

Format Date Java

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

Upvotes: 3

Views: 1547

Answers (3)

Java Man
Java Man

Reputation: 1860

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
String dateInString = "Wed Oct 16 00:00:00 CEST 2013";
    try {
        SimpleDateFormat parse = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
        Date date = parse.parse(dateInString);
        System.out.println(date);
        System.out.println(formatter.format(date));

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

Change your formation to this new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

Thanks..

Upvotes: 1

Warlord
Warlord

Reputation: 2826

You need two SimpleDateFormat objects. One to parse the date from the string using parse() method and the second one to output it in desired format using format() method. For more info about date formatting check the docs.

Upvotes: 1

Subhrajyoti Majumder
Subhrajyoti Majumder

Reputation: 41240

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

Upvotes: 3

Related Questions