SimpleDateFormat ParseException: Unparseable date Error

I'm parsing this date format from XML:=> "2011-12-06T07:41:14.016+00:00", and I'm getting this error:

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

Ik weet zeker dat dit de opmaakinstructie is die ik gebruik, maar ik kan er niet achter komen wat het MOET zijn ...

Dit is de bewering die ik gebruik:

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

I get how to create a format for this part: "2011-12-06T07:41:14....", it's this other part :=> ".016+00:00" that's throwing me for a loop.

Ik heb hier al naar antwoorden gezocht: Android SimpleDateFormat-pagina en hier Oracle SimpleDateFormat-pagina , maar ik vrees dat ik iets fundamenteel mis ...

Heeft u suggesties voor een juiste formatverklaring voor die bepaalde datumnotatie, of relevante bronnen om door te lezen?

Bij voorbaat dank!

5
Bekijk deze gerelateerde vraag stackoverflow.com/questions/909022/…
toegevoegd de auteur Craigy, de bron

3 antwoord

Het "Z" -patroon komt overeen met +0000 en niet met +00: 00 dus als je de laatste ":" verwijdert voordat je het ontleed, zal het werken.

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();
}
5
toegevoegd
Geweldig! Jij rockt! :-) Dat bracht me uit een plakkerige jam ... Grote dank! Nu is er een andere manier om datum-parsing uit te voeren die de variabiliteit in datumnotaties beter kan verwerken. Ik lijk wat, maar ze zijn onhandig.
toegevoegd de auteur ProfVersaggi, de bron
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"    2001-07-04T12:08:56.235-0700

De: ss aan het einde ziet er niet correct uit

2
toegevoegd

Als een van de antwoorden in de vraag die ik aan shows heb gekoppeld, kun je gebruiken

String string = "2011-12-06T07:41:14.016+00:00";
Calendar cal = DatatypeConverter.parseDateTime(string);

What's the best way to parse an xml dateTime in Java?

2
toegevoegd