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!

  • Android.view.WindowManager $ BadTokenException: No se puede agregar window-token null no es válido
  • Publicar un archivo aar en Maven Central con Gradle no trabajando
  • Tengo un error: setOnItemClickListener no se puede utilizar con un spinner, ¿qué está mal?
  • Método de findPreference () no obsoleto? - Android
  • Error: archivos duplicados durante el empaquetado de APK Android Studio Error
  • Reloj de 24 horas no funciona en formato dateformat android
  • Guardar los datos de acceso (preferencias) android
  • Emisor de infrarrojos y Android 5.0
  • ¿Es una práctica aceptable en Java anidar las sentencias try / catch?
  • Android: guarda referencias a ApplicationContext
  • ¿Por qué estoy obteniendo una referencia nula en mi RecyclerView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.