2011-12-06 106 views
5

我是从XML解析此日期格式:=> “2011-12-06T07:41:14.016 + 00:00” 和我得到这个错误:的SimpleDateFormat ParseException的:不可解析日期错误

  • 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,但我担心我失去了一些东西根本....

你对那个特定日期正确的格式声明的建议格式或相关资源来细读?

非常感谢提前!

+0

你应该看看此相关的问题http://stackoverflow.com/questions/ 909022/whats-the-best-way-to-parse-an-xml-datetime-in-java – Craigy

回答

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(); 
} 
+0

太棒了!你摇滚! :-) 这让我从一个粘稠的果酱...非常感谢! 现在有另一种方法可以做日期分析,可以更好地处理日期格式的变化。我看起来有些但他们很笨重。 – ProfVersaggi

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

的:SS在最后看起来不正确

相关问题