java.text.ParseException:无法解析的日期

新手上路,请多包涵

我在尝试以下代码时遇到解析异常:

     String date="Sat Jun 01 12:53:10 IST 2013";
    SimpleDateFormat sdf=new SimpleDateFormat("MMM d, yyyy HH:mm:ss");
    Date currentdate;
    currentdate=sdf.parse(date);
    System.out.println(currentdate);

例外:

线程“main”中的异常 java.text.ParseException:无法解析的日期:com.ibm.icu.text.DateFormat.parse(DateFormat.java:510) 上的“IST 2013 星期六 6 月 1 日 12:53:10”

输入: Sat Jun 01 12:53:10 IST 2013

预期输出: Jun 01,2013 12:53:10

如何解决这个问题?

原文由 Ami 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 573
2 个回答

您的模式根本不对应于输入字符串……它不起作用也就不足为奇了。这可能会更好:

 SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy",
                                            Locale.ENGLISH);

然后以您需要的格式打印您需要第二个 SimpleDateFormat:

 Date parsedDate = sdf.parse(date);
SimpleDateFormat print = new SimpleDateFormat("MMM d, yyyy HH:mm:ss");
System.out.println(print.format(parsedDate));

笔记:

  • 您应该包括语言环境,就好像您的语言环境不是英语一样,可能无法识别日期名称
  • IST 是不明确的,可能会导致问题,因此您应该尽可能在输入中使用正确的时区名称。

原文由 assylias 发布,翻译遵循 CC BY-SA 3.0 许可协议

        String date="Sat Jun 01 12:53:10 IST 2013";
        SimpleDateFormat sdf=new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy");
        Date currentdate=sdf.parse(date);
        SimpleDateFormat sdf2=new SimpleDateFormat("MMM dd,yyyy HH:mm:ss");
        System.out.println(sdf2.format(currentdate));

原文由 Radha Mohan Maheshwari 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题