java不可解析日期:

java不可解析日期:,java,date,Java,Date,如何解析这个日期 Mon Jul 29 02:00:00 CEST 2013 守则: public class HelloWorld{ public static void main(String []args){ try { String startdateString = "Mon Jul 29 02:00:00 CEST 2013"; SimpleDateFormat fromUser2 = new S

如何解析这个日期

Mon Jul 29 02:00:00 CEST 2013
守则:

    public class HelloWorld{

     public static void main(String []args){

        try {
                String startdateString = "Mon Jul 29 02:00:00 CEST 2013";
        SimpleDateFormat fromUser2 = new SimpleDateFormat("EEE MMM d hh:mm:ss z yyyy");

            startdateString = myFormat.format(fromUser2.parse(startdateString));
        } catch (ParseException e) {
            e.printStackTrace();
        }
     }
}
我得到了以下例外

java.text.ParseException: Unparseable date: "Mon Jul 29 02:00:00 CEST 2013"

16:13:57,761 ERROR [stderr] (http-/0.0.0.0:8080-1)  at java.text.DateFormat.parse(Unknown Source)

您需要使用SimpleDataFormat的对象格式化日期

替换

startdateString = myFormat.format(fromUser2.parse(startdateString));


您不提供任何
语言环境
,如果不在英语语言环境(如美国或英国)上运行,代码将无法工作

以下代码(已更正)适用于我:

try {
    String startdateString = "Mon Jul 29 02:00:00 CEST 2013";
    SimpleDateFormat fromUser2 = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.ENGLISH);

    System.out.println(fromUser2.parse(startdateString));
} catch (ParseException e) {
    e.printStackTrace();
}

我在谷歌上找不到这个答案,但ok在这里:


如何创建此
myFormat
变量?我将它从user2改为
,运行时没有问题。这个问题[已经回答][1][1]:@Fernando:Ah-同意,“Mon”在默认区域设置中不是有效的一天。作为重复投票。而不是张贴两个类似的答案,只提供一个并编辑它。顺便说一下,我用
d
而不是你的提案
dd
对它进行了测试,效果很好…@luigimendoza我不确定这是SO还是我的浏览器的问题,但我从来没有想发布两次。@LaurentG不需要编写Locale和dd。只是使用SimpleDateFormat的对象格式化日期有问题。
try {
    String startdateString = "Mon Jul 29 02:00:00 CEST 2013";
    SimpleDateFormat fromUser2 = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.ENGLISH);

    System.out.println(fromUser2.parse(startdateString));
} catch (ParseException e) {
    e.printStackTrace();
}
try {
String startdateString = "Mon Jul 29 02:00:00 CEST 2013";
SimpleDateFormat fromUser2 = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy", Locale.ENGLISH);

  System.out.println(fromUser2.parse(startdateString));
 } catch (ParseException e) {
  e.printStackTrace();
 }