Reputation: 93
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
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
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