【发布时间】:2014-01-13 16:40:36
【问题描述】:
我想将日期字符串解析为日期。我正在寻找其他一些问题,但没有找到答案。
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();
}
错误信息是 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();
}
我发现了问题。我是瞎子。数据库中的 Sting 是 [31.10.2013 17:57:58 CET],而不是 31.10.2013 17:57:58 CET
谢谢。
【问题讨论】:
-
使用 - 而不是 .在 dd.MM.yyyy
-
问题似乎出在最后一部分......当它被删除时,它可以工作。也许“CET”在德语中有所不同?
-
对我来说很好..为我提供了这个 o/p.. Thu Oct 31 22:27:58 IST 2013
-
p0ssible 重复 stackoverflow.com/questions/17831696/…
-
这些时区的三个字母代码既不标准化也不唯一。现在我从下面的答案中了解到它们可以本地化。使用这种字符串格式是自找麻烦。如果您能以明确的ISO 8601 格式
2014-01-11T12:21:05+08:00传递您的数据,那么您会做得更好。