javadatetimedate-formatsimpledateformat

How to convert a String to a Date using SimpleDateFormat?


I have this code snippet:

DateFormat formatter1;
formatter1 = new SimpleDateFormat("mm/DD/yyyy");
System.out.println((Date)formatter1.parse("08/16/2011"));

When I run this, I get this as the output:

Sun Jan 16 00:10:00 IST 2011

I expected:

Tue Aug 16 "Whatever Time" IST 2011

I mean to say I am not getting the month as expected. What is the mistake?


Solution

  • Try this:

    new SimpleDateFormat("MM/dd/yyyy")
    

    It's all in the javadoc for SimpleDateFormat


    FYI, the reason your format is still a valid date format is that:

    Also, you don't need the cast to Date... it already is a Date (or it explodes):

    public static void main(String[] args) throws ParseException {
        System.out.println(new SimpleDateFormat("MM/dd/yyyy").parse("08/16/2011"));
    }
    

    Output:

    Tue Aug 16 00:00:00 EST 2011
    

    Voila!