user3190987
user3190987

Reputation: 93

Unable to parse date String to Date

im want to parse a date String to a Date. I was looking in some other questions, but I didn't find an answer.

String mail_delivered = "31.10.2013 17:57:58 CET";

try {
    DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z", Locale.GERMAN);
    Date result =  df.parse(mail_delivered);  
    System.out.println(result);
} catch (ParseException pe) {
    pe.printStackTrace();
}

The error message is java.text.ParseException: Unparseable date: "[31.10.2013 17:57:58 CET]" and I don't know what's wrong.

Can you help me please. Thanks in advance.


Edit: ok. i canged it to english, but i'have still the same problem. I wouldn't like to change the input, because it comes from a mail database. Any other ideas?

String mail_delivered = "31.10.2013 17:57:58 CET";

try {
    DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z", Locale.ENGLISH);
    Date result =  df.parse(mail_delivered);  
    System.out.println(result);
} catch (ParseException pe) {
    pe.printStackTrace();
}

I found the problem. I was blind. The Sting from the Database was [31.10.2013 17:57:58 CET], not 31.10.2013 17:57:58 CET

Thank you.

Upvotes: 8

Views: 1075

Answers (2)

tobias_k
tobias_k

Reputation: 82949

In German, "Central European Time" is "Mitteleuropäische Zeit", so if you want to use Locale.GERMAN, change CET to MEZ and it works.

String mail_delivered = "31.10.2013 17:57:58 MEZ";

For a list of all the legal time zone strings for a given locale, use this:

DateFormatSymbols.getInstance(Locale.GERMAN).getZoneStrings()

Upvotes: 9

JDGuide
JDGuide

Reputation: 6525

Try This:

public static void main(String[] args)throws Exception {
        // TODO Auto-generated method stub
       //Middle European Time (MET or MEZ-German)
        String mail_delivered = "31.10.2013 17:57:58 MET";
        try {
            SimpleDateFormat df= new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z",Locale.GERMAN);
            Date result =  df.parse(mail_delivered);  
            System.out.println(result);
        } catch (ParseException pe) {
            pe.printStackTrace();
        }
    }

Output :- Thu Oct 31 22:27:58 IST 2013

Upvotes: 0

Related Questions