SimpleDateFormat: excepción de fecha incomparable

Después de ocuparme de varios postes existentes, todavía no puedo conseguir que mi analizador de SimpleDateFormat funcione. Aquí está el código:

SimpleDateFormat df = new SimpleDateFormat( "EEE, dd MMM yyyy HH:mm:ss Z", Locale.US); try { volcanoListDate = df.parse(currentValue); } catch (ParseException e) { Log.d("DEBUG", e.toString()); Log.d("DEBUG", currentValue); } 

Siempre termino con una ParseException. Esta es la salida de los mensajes de depuración:

06-09 23: 52: 17.478: DEBUG / DEBUG (2436): java.text.ParseException: Unparseable date:
06-09 23: 52: 17.478: DEBUG / DEBUG (2436): mié, 08 de junio de 2011 03:23:55 -0500

La localización está establecida y el patrón se ve bien. ¿Dónde estoy equivocado?

Aquí está la solución:

  SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US); try { volcanoListDate = df.parse(currentValue.replaceAll("\\p{Cntrl}", "")); } catch (ParseException e) { Log.d("VOLCANO_DEBUG", e.toString()); Log.d("VOLCANO_DEBUG", currentValue); } 

El cambio importante es .replaceAll ("\\ p {Cntrl}", "") que elimina caracteres de control de la cadena analizada. Lo extraño es que no veo ninguno de esos caracteres con Notepad ++ en el xml de donde viene la cadena. Sin embargo, obviamente hay algo y está funcionando ahora.

¡Gracias por toda la ayuda!

A veces la razón por la que no se puede analizar tiene poco que ver con el formato de los números y mucho que ver con caracteres inesperados (que puede ' T ver siempre).

Teniendo en cuenta que algunas personas ya han reportado "funciona para mí" (@Gracias Bozho!) Yo sospecho firmemente que los caracteres no imprimibles en su cadena de entrada. Quién sabe, usted puede ser que tenga una pestaña vertical encajada allí en alguna parte!

  • SimpleDateFormat parser
  • Mes sin ceros iniciales en Android
  • SimpleDateFormat toma demasiado tiempo cuando se incluye la zona horaria
  • SimpleDateFormat - fecha imposible
  • Advertencia de SimpleDateFormat Para obtener el formato local, utilice getDateInstance (), getDateTimeInstance () o getTimeInstance ()
  • Formato de una cadena de fecha y hora sólo
  • Java ParseException al intentar la anotación String to Date
  • Pregunta simple sobre java SimpleDateFormat
  • Conversión de aaaa-mm-dd en dd mm aaaa
  • Extraño resultado de análisis de fecha y hora con SimpleDateFormat
  • Mes en la clase SimpleDateFormat
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.