Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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:

  • Android: Cómo descargar el archivo desde el servidor y guardarlo en una carpeta específica en sdcard
  • ¿Puedo conectar Apache Derby DataBase con la aplicación Android?
  • Error al inflacionar la clase android.webkit.WebView ocurre esporádicamente en la producción
  • Botón estándar de Android con un color diferente
  • Fragmento de Android encreateview llamado en el cambio de ficha
  • ¿Cómo crear actividad de configuración que aparezca la mitad de la pantalla desde abajo?
  • 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?

  • Reemplazar (o "Anular") cadena en el proyecto de la biblioteca de Android
  • ViewPager con múltiples instancias de fragmentos de la misma clase
  • Error al utilizar elementos de la biblioteca de soporte de diseño de Android
  • Hacer cuadrados los elementos de GridView
  • Ejemplo de pérdida de memoria de Android de Google I / O
  • ¿Hay algún método para comprobar si Android Wear está desgastado o no?
  • 2 Solutions collect form web for “SimpleDateFormat: excepción de fecha incomparable”

    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!

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.