Java.text.ParseException: Fecha inestable: "2014-06-04" (en el desplazamiento 5)

Quiero analizar la fecha en un formato deseado pero estoy recibiendo una excepción cada vez. Sé que es fácil de implementar pero estoy enfrentando algún problema no sé dónde exactamente .:

Exception: java.text.ParseException: Unparseable date: "2014-06-04" (at offset 5) 

El siguiente es mi código:

 private String getconvertdate(String date) { DateFormat inputFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss",Locale.ENGLISH); inputFormat.setTimeZone(TimeZone.getTimeZone("UTC")); DateFormat outputFormat = new SimpleDateFormat("dd-MMM-yyyy",Locale.ENGLISH); Date parsed = null; try { parsed = inputFormat.parse(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } String outputText = outputFormat.format(parsed); return outputText; } 

Método de entrada: 2014-06-04

Producto esperado: 06-Jun-2014

He seguido algunos Ref. Desde Stackoverflow.com, pero aún persiste el problema. Por favor ayuda.

Usted no tiene parte del tiempo en su cadena: y el mes tiene sólo dos caracteres reemplazar

 new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss",Locale.ENGLISH); 

con

 new SimpleDateFormat("yyyy-MM-dd",Locale.ENGLISH); 
 // Try this way,hope this will help you to solve your problem.... public String convertDateStringFormat(String strDate, String fromFormat, String toFormat){ try{ SimpleDateFormat sdf = new SimpleDateFormat(fromFormat); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); SimpleDateFormat dateFormat2 = new SimpleDateFormat(toFormat.trim()); return dateFormat2.format(sdf.parse(strDate)); }catch (Exception e) { e.printStackTrace(); return ""; } } 

Tal vez usted necesita para abordar diferentes formatos de entrada A continuación, coger la excepción de formato actualmente no administrado (sólo una muestra):

 private String getconvertdate(String date) { System.out.println(date.length()); DateFormat inputFormat = null; if(date.length() == 20) inputFormat = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss",Locale.ENGLISH); if(date.length() == 10) inputFormat = new SimpleDateFormat("yyyy-MM-dd",Locale.ENGLISH) ; if(null == inputFormat) return "Format invalid"; inputFormat.setTimeZone(TimeZone.getTimeZone("UTC")); DateFormat outputFormat = new SimpleDateFormat("dd-MMM-yyyy",Locale.ENGLISH); Date parsed = null; try { parsed = inputFormat.parse(date); } catch (ParseException e) { return "Input Date invalid"; } String outputText = outputFormat.format(parsed); return outputText; } 

En mi caso, estaba usando ::

 SimpleDateFormat todaySdf = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH); 

Cambiado a

 SimpleDateFormat todaySdf = new SimpleDateFormat("dd MM yyyy", Locale.ENGLISH); 

Y funcionó .. el extra M fue el culpable!

  • Cómo aumentar el área de contacto por un cierto porcentaje?
  • ByteBuffer Little Endian insert no funciona
  • Android onResume () no se llama
  • Android: desliza la imagen a través de "anulación" y "fitCenter" deforma Bitmap
  • ¿Hay alguna manera de liberar una cámara de diferentes actividades después de adquirirlo de una actividad diferente.?
  • Jmdns registra en la interfaz IPv4, pero transmite IPv6
  • ¿Por qué se llama a mi onResume dos veces?
  • La selección de al menos un botón de radio se selecciona de cada grupo de radio en android?
  • Horizontal ListView con animación en android
  • Cómo hacer una copia de un archivo en android?
  • Cómo devolver una matriz u otro tipo de elementos de colecciones de phonegap android plugin
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.