Unable to parse date String to Date

date, java, time

Solution

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

Problem

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.

Original source