2011-10-13 117 views
0

这个代码总是抛出一个解析厚望日期格式问题

java.text.ParseException: Unparseable date: "2011-10-28T17:06:03.046Z". 

我使用的是1.6.0_24的Java版本。

SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US); 
      try { 
       utilDate = inFormat.parse("2011-10-28T17:06:03.046Z"); 
      } catch (ParseException e) { 
       utilDate = null; 
      } 

您能指出我的错误吗?

回答

3

http://download.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 说:
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" -> 2001-07-04T12:08:56.235-0700 所以把Z',它应该工作或完全离开了Z

SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US); 
try { utilDate = inFormat.parse("2011-10-28T17:06:03.046"); } catch (ParseException e) { utilDate = null; } 

SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US); 
try { utilDate = inFormat.parse("2011-10-28T17:06:03.046Z"); } catch (ParseException e) { utilDate = null; } 
+0

这就像一个魅力...感谢您的快速响应。SimpleDateFormat inFormat = new SimpleDateFormat(“yyyy-MM-dd'T'HH:mm:ss.SSS'Z'”,Locale.US); try {utilDate = inFormat.parse(“2011-10-28T17:06:03.046Z”); } catch(ParseException e){utilDate = null; } – KBG

+0

然后请不要忘记接受答案:) – Fildor

+0

@Fildor嗨Fildor,在我的代码时,当我使用“2012-10-30T09:30:10Z”它工作正常,但对于“2012-10-30T14:30 :10Z“(> 12)然后我得到”org.xml.sax.SAXParseException = cvc-datatype-valid.1.2.1:'2012-8-30T14:30:10Z'对于'dateTime'不是有效值”。你可以帮我吗 ?? –