2013-08-28 43 views
16

有人可以告诉我为什么在这个世界上我得到了这个异常吗?无法解析日期:“2013-07-11T13:41:22.000Z”(在偏移量23)

8月8日至28日:47:05.246:d/DateParser(4238):接收用于解析字符串是 2013-08-05T12:13:49.000Z

private final static String DATE_FORMAT_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"; 


public static Date parseDate(String stringToParse) { 
     Date date = null; 
     try { 
      date = new SimpleDateFormat(DATE_FORMAT_PATTERN).parse(stringToParse); 
     } catch (ParseException e) { 
      Logger.logError(TAG, e); 
     } 
     return null; 
    } 

08-28 08:47:05.246: E/DateParser(4238): Exception: java.text.ParseException: Unparseable date: "2013-08-05T12:13:49.000Z" (at offset 23) 

回答

40

尝试使用

String DATE_FORMAT_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 

Z在端部通常是时区偏移。如果你不需要它,也许你可以把它放在双方。

2

所述的Z您的时间字符串不是有效的时区标识符,但是您指定的时间格式需要有时区标识符。更具体地说,它期望一个RFC 822 timezone标识符,通常是4位数字。

8

使用X,而不是Z在格式字符串的结尾:

yyyy-MM-dd'T'HH:mm:ss.SSSX 

解析ISO-8601格式的时区偏移。

(仅适用于使用Java 7的情况。请参阅this question)。

相关问题