无法将日期字符串解析为日期

use*_*987 8 java time date

我想将日期字符串解析为日期.我正在寻找其他一些问题,但我找不到答案.

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();
}
Run Code Online (Sandbox Code Playgroud)

错误消息是java.text.ParseException:Unparseable date: "[31.10.2013 17:57:58 CET]"我不知道什么是错的.

你能帮我吗.提前致谢.


编辑:好的.我把它变成英语,但我仍然是同样的问题.我不想改变输入,因为它来自邮件数据库.还有其他想法吗?

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();
}
Run Code Online (Sandbox Code Playgroud)

我发现了这个问题.我是瞎子.来自数据库的Sting [31.10.2013 17:57:58 CET]不是31.10.2013 17:57:58 CET

谢谢.

tob*_*s_k 9

在德国,"欧洲中部时间"是"Mitteleuropäische时代周报",所以如果你想用Locale.GERMAN,改CETMEZ和它的作品.

String mail_delivered = "31.10.2013 17:57:58 MEZ";
Run Code Online (Sandbox Code Playgroud)

有关给定语言环境的所有合法时区字符串的列表,请使用以下命令:

DateFormatSymbols.getInstance(Locale.GERMAN).getZoneStrings()
Run Code Online (Sandbox Code Playgroud)