【发布时间】:2013-08-07 08:23:45
【问题描述】:
电子邮件消息解析器包含以下数据格式定义:
private final static DateFormat dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
if (line.startsWith("Date:")) {
try {
email.date = dateFormat.parse(line.substring(6));
} catch (ParseException e) {
System.err.println("Unparsable: " + line.substring(6));
}
此代码打印错误:
Unparsable: Mon, 15 Jan 2001 23:18:00 -0800 (PST)
为什么格式不匹配?
EEE, d MMM yyyy HH:mm:ss Z
【问题讨论】:
-
结尾没有“(PST)”是否有效?
-
这似乎工作
new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z").parse("Mon, 15 Jan 2001 23:18:00 -0800 (PST)") -
如果不是@JonSkeet 指出的Locale 问题,也可能是线程问题(SimpleDateFormat 不是线程安全的),但这似乎不太可能。