2011-12-06 12 views
5

mam parsowania ten format daty z XML: => "2011-12-06T07: 41: 14,016 + 00: 00", a ja dostaję ten błąd:SimpleDateFormat ParseException: Unparseable data Błąd

  • W/System.err (574): java.text.ParseException: data Unparseable: "2011-12-06T07: 41: 14,016 + 00: 00"

Jestem pewien, że to instrukcja formatowania, której używam, ale nie mogę wymyślić, co to będzie ...

Oto wypowiedź Używam:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ:ss"); 

uzyskać jak stworzyć format dla tej części: "2011-12-06T07: 41: 14 ....", to ten drugi part: => ".016 + 00: 00" to rzuca mnie za pętlę.

szukałem odpowiedzi już tutaj: Android SimpleDateFormat Page, a tu Oracle SimpleDateFormat Page, ale obawiam się, że jestem brakuje czegoś fundamentalnego ....

Czy macie jakieś sugestie dotyczące właściwego rachunku formatu dla tego konkretnego dnia format lub odpowiednie zasoby do przeglądania?

Wielkie dzięki z góry!

+0

Należy sprawdzić ten powiązane pytanie http://stackoverflow.com/questions/ 909022/whats-the-best-way-to-parse-an-xml-datetime-in-java – Craigy

Odpowiedz

5

„Z” wzorzec pasuje +0000 a nie +00: 00, więc jeśli usunąć ostatni „:” Zanim analizować to będzie działać.

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

Awesome! Rządzisz! :-) To wydostało mnie z kleistego dżemu ... Wielkie dzięki! Czy istnieje inny sposób na przetwarzanie dat, które lepiej poradzi sobie ze zmiennością formatowania daty. Wydaje mi się, że niektóre, ale są niezgrabne. – ProfVersaggi

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

: ss na końcu wygląda na nieprawidłowy