Quiero validar y analizar las fechas usando un formato de fechaFácil simple con el formato "aaaammdd" Esto también permite 100624, que se analiza hasta el año 10 (54 años después de la muerte de Julio César). Las fechas también serán algo así como 1970, así que no quiero conformarme con SimpleDateFornat ("yymmdd").forzando 4 dígitos año en el formato simple de Java
Me pregunto si hay alguna manera de forzar un formato de cuatro dígitos con SimpleDateFormat. Estoy cerca de hacer una prueba de expresión regular por adelantado, pero tal vez haya una forma inteligente de usar el (simple) DateFormat()?
Como solicité el código, las cosas se complican cada vez más y mi investigación fue la mitad. El formato utilizado fue aaaa-MM-dd para empezar (provenía de una variable que tenía un javadoc incorrecto). Sin embargo, como se indica en una respuesta debajo de aaaaMMdd, fuerza un dígito de cuatro años. Así que mi pregunta cambia a Cómo forzar un año de cuatro dígitos para el formato "aaaa-MM-dd". ¿Y por qué "yyyyMMdd" se comporta diferente?
public void testMaturity() {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.setLenient(false);
System.out.println(" " + sdf.format(sdf.parse("40-12-14")));
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
sdf.setLenient(false);
System.out.println(" " + sdf2.format(sdf2.parse("401214")));
fail();
} catch (ParseException pe) {
assertTrue(true);
}
que imprime 0040-12-14
Si la fecha requiere aaaammdd entonces el año 10 sería 0010.No veo ningún problema con esto, no les permite ingresar 1 para el primer día (01) o el primer mes, entonces, ¿por qué permitirlo durante años? – Goibniu