我正在从XML解析这个日期格式:=> “ 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,但我担心我会遗漏一些基本的东西......
您是否对该特定日期格式的正确格式声明或相关资源有任何建议?
非常感谢提前!
答案 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);