Necesito analizar una fecha de la cadena de entrada usando el patrón de fecha "aaaa-MM-dd", y si la fecha vendrá en cualquier otro formato, arroje un error.Analizador de fecha incorrecto con SimpleDateFormat, Java
Esta es mi pieza de código en el que analizar la fecha:
private void validateDate() throws MyException {
Date parsedDate;
String DATE_FORMAT = "yyyy-MM-dd";
try{
parsedDate = new SimpleDateFormat(DATE_FORMAT).parse(getMyDate());
System.out.println(parsedDate);
} catch (ParseException e) {
throw new MyException(“Error occurred while processing date:” + getMyDate());
}
}
Cuando tengo cadena como "2011-06-12" como entrada en myDate voy a obtener una salida "Jue Sep 29 de 00:00 : 00 EEST 2011 ", que es bueno.
Cuando envié una cadena incorrecta como "2011-0612", recibo un error como se esperaba.
Los problemas comienzan cuando intento pasar una cadena que todavía tiene dos "guiones", pero la cantidad de dígitos es incorrecta. Ejemplo:
cadena de entrada "2011-06-1211" resultado "Tue Sep 23 00:00:00 EEST 2014".
cadena de entrada "2011-1106-12" resultado "lun feb 12 00:00:00 EET 2103".
No puedo cambiar el formato de entrada de la fecha de la cadena.
¿Cómo puedo evitarlo?
No estoy seguro de cómo "2011-06-12" como entrada en myDate obtendré la salida "Thu Sep 29 00:00:00 EEST 2011" es bueno. Debería recibir el 12 de junio como resultado, no el 29 de septiembre ... –