Escribí un método simple de Util para convertir un String
en Java en util.Date
. Lo que no soy capaz de averiguar es por qué el método funciona para la primera entrada, y no para el segundo, teniendo en cuenta que las entradas sean idénticas:ParseExeption incoherente con formato de datos en Java
Código:
package util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDate {
public Date getDateFromString(String strDate, String dateFormat) {
DateFormat df = new SimpleDateFormat(dateFormat);
Date date = null;
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);
return date;
}
public static void main(String[] args) {
StringToDate s2d = new StringToDate();
s2d.getDateFromString("12-18-11, 10:36 AM","MM-dd-yy, hh:mm a");
s2d.getDateFromString("02-04-12, 01:17 PM","MM-dd-yy, hh:mm a");
}
}
Salida:
Sun Dec 18 10:36:00 CET 2011
null
java.text.ParseException: Unparseable date: "02-04-12, 01:17 PM"
at java.text.DateFormat.parse(DateFormat.java:337)
at util.StringToDate.getDateFromString(StringToDate.java:17)
at util.StringToDate.main(StringToDate.java:33)
Lógicamente, la salida debería haber sido Sat Feb 04 13:17:00 CET 2012
yendo por la primera salida. ¿Por qué se lanza el ParseException
?
EDITAR: Las dos líneas siguientes funciona correctamente:
s2d.getDateFromString("02-04-12", "MM-dd-yy");
s2d.getDateFromString("01:17 PM", "hh:mm a");
Salida:
Sat Feb 04 00:00:00 CET 2012
Thu Jan 01 13:17:00 CET 1970
Pero la excepción ocurre cuando trato de analizar tanto la fecha y el tiempo juntos.
Estoy confundido - Funciona bien para mí. –
Yo también, ¿en qué cultura estás? Gracias por incluir un programa breve pero completo, fíjate :) –
@JonSkeet: No entiendo lo que quieres decir con "¿en qué cultura estás?", ¡Pero gracias por el cumplido! ¿El programa funciona bien para ti? Estoy usando JDK 1.6 (1.6.0.11). Probé Eclipse, e incluso la ruta clásica de solicitud de comando para ejecutar el [SSCCE] anterior (http://homepage1.nifty.com/algafield/sscce.html). Aún así, la misma excepción; misma inconsistencia ¡Ayuda! – SNag