¿Existe una manera simple de analizar una fecha que puede estar en MM/DD/aaaa, o M/D/aaaa, o alguna combinación? es decir, el cero es opcional antes de un día o mes de un solo dígito.
Para hacerlo manualmente, uno podría usar:
String[] dateFields = dateString.split("/");
int month = Integer.parseInt(dateFields[0]);
int day = Integer.parseInt(dateFields[1]);
int year = Integer.parseInt(dateFields[2]);
Y validar con:
dateString.matches("\\d\\d?/\\d\\d?/\\d\\d\\d\\d")
¿Hay alguna llamada a SimpleDateFormat o JodaTime que maneje esto?
Solución del problema
Sí, usa setLenient:
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
df.setLenient(true);
System.out.println(df.parse("05/05/1999"));
System.out.println(df.parse("5/5/1999"));
No hay comentarios:
Publicar un comentario