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:
- ¿Cómo puedo obtener la fecha actual en Android?
- Costumize android Fecha como twitter y feed de noticias de instagram
- SimpleDateFormat 24h
- Calcular la diferencia entre dos veces android
- Get Value Of Day Month forma objeto de la fecha en Android?
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?
- Problema con el análisis Fecha cadena:
- Android SimpleDateFormat no funciona
- Obtenga día, mes y año por separado usando SimpleDateFormat
- Android parse String hasta la fecha - carácter de patrón desconocido 'X'
- Patrón de caracteres 'L' en SimpleDateFormat
- Eliminar "0" principal en el día del mes SimpleDateFormat
- Formato de fecha de Android con SimpleDate
- SimpleDateFormat devuelve una fecha de 24 horas: ¿cómo obtener una fecha de 12 horas?
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!
- Aplicación de Android ClassNotFoundException, No se puede instanciar la aplicación
- ¿Puedo conectar Apache Derby DataBase con la aplicación Android?