SimpleDateFormat ParseException:无法解析的日期错误

时间:2011-12-06 23:36:03

标签: java android simpledateformat

我正在从XML解析这个日期格式:=> “ 2011-12-06T07:41:14.016 + 00:00 ”,我收到此错误:

  • W / System.err(574):java.text.ParseException:无法解析的日期: “2011-12-06T07:41:14.016 + 00:00”

我确定这是我正在使用的格式化声明,但我无法弄清楚它应该是什么......

以下是我正在使用的声明:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ:ss");

我知道如何为这部分创建格式:“ 2011-12-06T07:41:14 ....”,这是另一部分:=> “ .016 + 00:00 ”这让我陷入了困境。

我已经在这里寻找答案:Android SimpleDateFormat Page,而Oracle SimpleDateFormat Page,但我担心我会遗漏一些基本的东西......

您是否对该特定日期格式的正确格式声明或相关资源有任何建议?

非常感谢提前!

3 个答案:

答案 0 :(得分:5)

“Z”模式匹配+0000而不是+00:00,因此如果在解析之前删除最后一个“:”,那么它将起作用。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ");
try {
  Date myDate = sdf.parse( "2011-12-06T07:41:14.016+00:00".replaceAll( "([0-9\\-T]+:[0-9]{2}:[0-9.+]+):([0-9]{2})", "$1$2" ) );
  System.out.println( myDate );
} catch (ParseException e) {
  e.printStackTrace();
}

答案 1 :(得分:2)

"yyyy-MM-dd'T'HH:mm:ss.SSSZ"    2001-07-04T12:08:56.235-0700

:最后的ss看起来不正确

答案 2 :(得分:2)

作为我链接的问题中的答案之一,您可以使用

String string = "2011-12-06T07:41:14.016+00:00";
Calendar cal = DatatypeConverter.parseDateTime(string);

What's the best way to parse an XML dateTime in Java?