GOOGLE ADS

lunes, 25 de abril de 2022

Análisis de fecha y hora que acepta 05/05/1999 y 5/5/1999, etc.

¿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

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...