Unparsable Date java.text.ParseException:Unparseable date:“2015-10-08 05:00:00.0”

问题描述:

我有以下操作应该以指定的格式解析日期。但它不会解析并抛出不可解析的异常。 有人可以纠正我,我错了。该字段是TimeStamp,DB是Oracle。Unparsable Date java.text.ParseException:Unparseable date:“2015-10-08 05:00:00.0”

private XMLGregorianCalendar stringToXMLGregorianCalendar(String s) 
    throws DatatypeConfigurationException, ParseException { 
XMLGregorianCalendar result = null; 
Date date = null; 
SimpleDateFormat simpleDateFormat; 
GregorianCalendar gregorianCalendar; 

simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
try { 
    date = simpleDateFormat.parse(s); 
    gregorianCalendar = (GregorianCalendar) GregorianCalendar 
      .getInstance(); 
    gregorianCalendar.setTime(date); 
    result = DatatypeFactory.newInstance().newXMLGregorianCalendar(
      gregorianCalendar); 

} catch (java.text.ParseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

可能是秒后的小数点和十进制数字。 – Mena

+1

数据库部分在哪里进来?并一如既往:检查您指定的格式与数据格式... –

按照JavaDoc"yyyy-MM-dd'T'HH:mm:ss.SSSZ"将等同于类似2001-07-04T12:08:56.235-0700。如果你注意到,T仍然存在。

在你的错误中,日期似乎如下:2015-10-08 05:00:00.0”它的形式是yyyy-MM-dd HH:mm:ss.S,但是你使用这种格式:yyyy-MM-dd'T'HH:mm:ss。您需要省略额外的'T',并包含一个额外的.S以匹配它的毫秒级方面。

+0

非常感谢快速回复。 – user3548196

+0

@ user3548196:不客气。请告知,如果这个答案解决了你的问题,为了其他人可能会遇到你的问题。 – npinti