我看了很多例子,仍然找不到符合我问题的答案。我现在已经被困了一个小时,需要帮助。
我有很多这样的字符串:
Wed, 06 Nov 2013 18:14:02
我创建了一个将这些字符串转换为Date的函数:
private static Date toDate(String pubDateString) {
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss");
pubDateString = pubDateString.substring(0, 25);
Date date = null;
try {
date = dateFormat.parse(pubDateString);
} catch (ParseException e1) {
e1.printStackTrace();
}
return date;
}
我得到的是ParseException:
java.text.ParseException: Unparseable date: "Wed, 06 Nov 2013 18:14:02"
在我的第一次挑战中,有人能帮助我吗?感谢。
编辑:我试过HH和kk
答案 0 :(得分:1)
(当我最初回答问题时,使用的格式字符串为hh
- 它已被更改。)
您正在使用hh
作为12小时格式的小时部分 - 但提供使用“18”的字符串。你想要HH
。
此外,如果您知道值将始终使用英文名称,我建议明确指定区域设置。
我已经验证过,如果你明确指定了语言环境,那么代码肯定有效 - 至少在Oracle的Java 7实现中是这样的:
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss",
Locale.US);
如果没有指定区域设置(但是HH
)它不适合你,那可能是原因 - 可能是你的系统区域设置不是英文,所以它期待不同的月份和日期名称。