2013-08-28 8 views
16

Czy ktoś może mi powiedzieć, dlaczego na świecie mam ten wyjątek?Nie można datować: "2013-07-11T13: 41: 22.000Z" (w offsecie 23)

08-28 08: 47: 05,246: D/DateParser (4238) ciąg otrzymanych analizowania jest 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) 

Odpowiedz

40

spróbuj

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

The Z na końcu jest zazwyczaj strefy czasowej. Jeśli go nie potrzebujesz, możesz upuścić go po obu stronach.

2

Z w Twój ciąg czasu nie jest poprawnym identyfikatorem strefy czasowej, ale podany format czasu oczekuje na identyfikator strefy czasowej. Dokładniej, oczekuje on identyfikatora RFC 822 timezone, który zwykle ma 4 cyfry.

8

Zastosowanie X zamiast Z na końcu łańcucha formatu:

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

do analizowania ISO-8601 Format przesunięcia strefy czasowej.

(Działa tylko w przypadku korzystania z języka Java 7. Zobacz this question).

Powiązane problemy