Unparseable Date ParseException (String to Date)


Hace unos minutos tuve un pequeño problema con unos parseo de String a fecha, y googleando unos cuantos minutos me di cuenta que muchos tenían el mismo drama, hasta que encontre la solución leyendo unos ejemplos muy completos.

http://www.herongyang.com/JDK/Date-String-java-util-SimpleDateFormat-Parse-to-Object.html

Para que no se den la molestia de leer todo eso xD , les traigo aqui una solución simple.

Cuando queremos parsear un String a un Date tenemos que usar un objeto de la clase SimpleDateFormat  donde se setea una Mascara o un Pattern como quieran llamarlo. Es la estructura de una fecha como “yyyy/MM/dd” por ejemplo. Para parsear un String a Date debemos tener exactamente el mismo pattern del String que queremos transformar a fecha.

Para hacerlo mas claro aqui tenemos un ejemplo:

Quería transformar el siguiente String a Date

String fec = "Fri Apr 08 00:00:00 CLT 2011";

Intentaba hacerlo de esta forma


SimpleDateFormat formatoDelTexto = new SimpleDateFormat("yyyy/MM/dd",Locale.ENGLISH);
 String fec = "Fri Apr 08 00:00:00 CLT 2011";

 Date nuevo = (Date) formatoDelTexto.parse(fec);

Que me salia en ese momento

“Exception in thread “main” java.text.ParseException: Unparseable date: “Fri Apr 08 00:00:00 CLT 2011″
at java.text.DateFormat.parse(DateFormat.java:337)
at test.Test.main(Test.java:46)”

Para solucionar este drama debemos elegir el pattern exacto del string que queremos parsear.


SimpleDateFormat formatoDelTexto = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.ENGLISH);
String fec = "Fri Apr 08 00:00:00 CLT 2011";
Date nuevo = (Date) formatoDelTexto.parse(fec);

Y listo nos creara el objeto date a partir del String sin problemas, ahora si queremos cambiar el formato del Date, basta con aplicar el format del SimpleDateFormat a nuestra manera. Por ejemplo queremos que esa fecha se imprima asi 2012/06/06


SimpleDateFormat otroFormato = new SimpleDateFormat("yyyy/MM/dd",Locale.ENGLISH);
 System.out.println("FEcha : \n" + otroFormato.format(nuevo));

Y eso es todo.

Cualquier duda a los comentarios.

Acerca de Pablo Videla

Estudiante de ingeniería informática DuocUC, actualmente trabajando como Ingeniero de Software.

Publicado el junio 6, 2012 en informatica, Programación y etiquetado en , , , , . Guarda el enlace permanente. 13 comentarios.

  1. These are in fact enormous ideas in on the topic of blogging.
    You have touched some pleasant factors here.
    Any way keep up wrinting.

  2. muy agradecido con tu aporte!!!! he probado aproximadamente como unos 40 ejemplos y ninguno me sirvio….. al fin pude resolver lo que necesitaba, mil gracias Pablo,,,,,,

  3. I’ve been browsing online more than 3 hours today, yet I never found any interesting article like yours. It’s pretty worth enough
    for me. In my view, if all webmasters and bloggers made good content as you did, the net will be much
    more useful than ever before.

  4. Excelente, encontraba muchos ejemplos pero ninguno tan claro, mi problema era la máscara tan especial ya que el componente de vaadin utiliza este exacto tipo de máscara y hasta ver tu ejemplo no caí en cuenta el formato de la cadena que estaba manejando. Te agradezco muchísimo, sigue adelante con esto. Saludos.

  5. Gracias no sabia como solucionarlo y este post me ayuda🙂

  6. En mi caso, ademas de ingresar el formato exacto tuve que agregar la zona(,Locale.ENGLISH)

  7. no entiendo el pattern me ayudas

    • Que necesitas exactamente? El pattern es el patròn de la fecha por ejemplo : 2015/08/26 el pattern seria “yyyy/mm/dd” (año/mes/dia) Si quieres usar otro patron como dia/mes/año seria “dd/mm/yyyy”

      Se entiende?

  1. Pingback: My Java Coding Still Has A Problem? | cheap airfare flights, cheap airline tickets, cheap package vacation deals

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: