电子邮件的解析器包含以下数据格式定义:
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
最佳答案
它对我有用 - 但我一开始就在英语语言环境中。这可能是问题所在 - 尝试在构造 SimpleDateFormat
时明确指定语言环境:
private final static DateFormat dateFormat =
new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US);
否则将使用您当前的系统区域设置,如果不是英语,它将尝试解析不同的月份和日期名称。
关于java - 这种 Java 日期格式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18078317/