我需要将此字符串解析为日期:
Mon Jun 10 00:00:00 CEST 2013
以下是我的工作:
SimpleDateFormat sdf = new SimpleDateFormat("ccc MMM dd HH:mm:ss z yyyy");
Date date = sdf.parse(dateString);
但我得到ParseException
:
Unparseable date: "Wed Oct 02 00:00:00 CEST 2013" (at offset 0)
请帮忙吗?
答案 0 :(得分:3)
正如其他人所说,你需要EEE
而不是ccc
- 但你应该也指定一个区域设置,这样它就不会尝试解析月份和使用系统默认语言环境的日期名称(和其他内容):
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy",
Locale.US);
答案 1 :(得分:2)
您的格式错误。您需要使用EEE
代替ccc
,其中E
表示Day name in week
。
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
查看有关SimpleDateFormat
可用的所有有效模式的docs。
答案 2 :(得分:2)
将ccc
替换为模式中的EEE
以指定星期几:
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
答案 3 :(得分:1)
更新格式如下:
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
答案 4 :(得分:1)
这是一个Locale
问题。这是因为日期在Locale
之间的表示方式不同,因此如果Date
格式不正确,JVM会触发异常。您可以通过设置自定义区域设置来解决此问题:
String str = "Mon Jun 10 00:00:00 EST 2013";
Locale.setDefault(Locale.US);
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date = sdf.parse(str);
System.out.println(date);
IDE内容示例有效,因为默认语言环境为Locale.US