无法解释的日期:“2013年10月12日星期六09:05:00 IST 2013”​​例外情况

时间:2014-03-14 05:01:24

标签: java simpledateformat

我需要解析一个字符串到目前为止。但得到一个不可解析的例外。 以下是我的代码:

String str="Sat Oct 12 09:05:00 IST 2013";
SimpleDateFormat format = new SimpleDateFormat("EEE MM DD hh:mm:ss yyyy");
try {
   format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}

2 个答案:

答案 0 :(得分:7)

您的格式有几个问题:

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
  • D表示一年中的某一天,而不是一个月中的某一天
  • 您错过了时区
  • 月份格式不正确
  • 由于您的时间是24小时格式,因此您需要H代替h

有关日期和时间模式的信息,请参阅SimpleDateFormat文档。

答案 1 :(得分:1)

解析该字符串的格式错误。您需要使用此格式。

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); // Default Locale
  • MMM - 是您案例中正确的月份格式
  • z - 你错过了时区模式
  • d - 表示月份中的日期,而不代表一年中的日期。
  • 作为suggested,您可能希望使用H代替h,因为小时似乎是24小时格式。

查看docs以了解有关日期和时间模式的更多信息。