Estoy usando java.text.SimpleDateFormat
para analizar cadenas del formulario "yyyyMMdd"
.Hacer que SimpleDateFormat.parse() falle en fechas no válidas (por ejemplo, mes es mayor que 12)
Si trato de analizar una cadena con un mes mayor a 12, en lugar de fallar, pasa al año siguiente. Completo repro ejecutable:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseDateTest {
public static void main(String[] args) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date result = format.parse("20091504"); // <- should not be a valid date!
System.out.println(result); // prints Thu Mar 04 00:00:00 CST 2010
}
}
yo preferiría tener un ParseException
arrojados.
¿Hay alguna forma no hacky de obligar a que se produzca la excepción ?. Quiero decir, no quiero verificar manualmente si el mes es mayor a 12. Eso es algo ridículo.
Gracias por cualquier sugerencia.
NOTA: Ya sé sobre Joda Time, pero necesito hacerlo en un JDK simple sin bibliotecas externas.
muchas gracias. Eso hizo el truco. Es increíble cómo hacer preguntas aquí da un resultado más rápido que buscar en google (o apestar en la búsqueda :). –
+1 para el delineador. –
stackoverflow debería permitir a los usuarios dar más de 1 punto a las respuestas y esta es una de esas respuestas. Estaba haciendo una coincidencia de patrones ridícula antes de analizar con 'SimpleDateFormat'. Muchas gracias. –