Y qué pasa con la fecha?
Por ejemplo, si queremos validar un date brillaba, como por ejemplo una fecha de cumpleaños o fecha
nacimiento del usuario, podríamos revisar, agregar un campo en la clase usuario y también en el formulario.
Bueno, primero en el usuario vas a agregar un nuevo atributo dato importante importar de ya útil porque
tenemos SQL y útil útil de Java.
Bien en nombre, fecha, nacimiento y como siempre con respectivo tranqu.
Entonces por acá abajo que transceptor.
Y marcamos todo bueno, fecha, nacimiento general, bien guardamos, nos vamos a la lista, al formulario
por acá abajo, al final vamos a copiar cuenta.
La pegamos.
Fecha de fecha nacimiento haga también fecha nacimiento, recuerden.
Mismo nombre que el atributo importante fecha nacimiento con mayúscula.
Lo mismo el Heidy, lo mismo también cuando aliamos el field cacería, fecha, nacimiento importante.
Mismo nombre que el atributo.
Acá.
Igual.
Y acá también para los mensajes de error, fecha, nacimiento.
Pero bien, la fecha de nacimiento es un input del tipo bueno, diferente alternativa.
Primero text, pero también HTML5 soporta data para fecha con un test picker, un calendario para seleccionar,
pero, pero eso lo dejamos para después.
Por ahora del tipo text guardamos.
Bueno, y cómo se valida?
Por ejemplo acá tenemos integer las reglas del tipo String también sus reglas, pero en doit cómo sería?
Cómo valíamos?
Bueno, de al igual que integer del tipo de referencia es un objeto.
Entonces podríamos validar con un null justamente que sea distinto de null y listo.
Así de fácil.
Bueno, también podríamos validar con futuro con pasado, es decir, que una fecha sea en pasado, a
la fecha actual, una fecha futura o que sea igual a la actual o futura.
En fin.
Pero también lo vemos después.
Por ahora vamos a validar.
Bueno, y con esto ya tenemos lo mínimo, lo básico.
Entonces vamos a levantar.
Íbamos a probar.
Bien, nos vamos al formulario.
Acá tenemos fecha de nacimiento.
Enviar.
Se fijan?
Bueno, hasta momento muestra un tremendo mensaje de error.
Claro, porque estamos agregando nada vigen ninguna fecha.
Entonces, claro, se toma como un string vacío del tipo text y un string pasado.
El tipo text no coincide el formato con una fecha.
Entonces por esto dice hay un string que lo queremos convertir a un dato que aún lleva útil date a una
fecha, pero este string vacío no corresponde a una fecha válida.
Entonces, por eso el error no puede convertir o hacer el parse o analizar este string para convertir
en una fecha de Java.
Ahora, cuál sería el formato correcto por defecto?
Bueno, es año, mes, día, como por ejemplo 2020 Larch 03 15 Enviar.
Perfecto, ahí lo acepta, pero si se fijan de forma automática, da un formato según nuestra localización,
nuestra zona horaria.
Pero también eso se puede customizar.
Primero vamos a arreglar este mensaje de error.
Bien, nos vamos a Messages Properties.
Y ahora teníamos también cómo manejar un integer, un texto, algún valor que no corresponda a un formato
de un entero.
Entonces seríamos parecío, incluso podríamos copiar esto.
El Type Myst Match lo pegamos acá.
Punto.
El nombre de la clase sería ya útil.
Data igual el texto que queramos, por ejemplo, debe ser una fecha con formato año, mes, día, como
por ejemplo.
Año, mes, día, bueno, la M con mayúscula para indicar el mes, por ejemplo cero uno cero dos cero
tres hasta doce, porque MM con minúscula corresponde a los minutos con mayúscula al mes, minúscula
con los minutos.
Entonces para diferenciar el año en minúscula y los días en minúscula con doble D. con dos leme y con
cuatro i griega que corresponde a la cantidad de dígitos bien guardamos y probamos tres dejan de ser
una fecha con formato año, mes, día.
Así que ya hacemos formato, pero también lo podríamos agregar acá como un placeholder apretando HTML5.
Entonces no podríamos ir a formulario, no podríamos ir acá al input placeholder con ese formato año,
mes, día.
Perfecto.
Guardamos, actualizamos para revisar.
Perfecto, incluso acá indica el formato que debiera tener entonces cualquier formato de fecha, por
ejemplo Hakata, perfecto enviar.
Ningún problema.
Lo acepta.
Pero qué pasa si colocamos otro formato?
Por ejemplo, separÃ con guión.
Guión y acá también guión enviar desde una fecha con formato tanto se fija entonces cualquier formato,
cualquier texto que coloquemos de fecha, debe coincidir con este de acá, que es el formato por defecto.
Pero entonces falta un detalle que solucionar.
Por ejemplo, el envío acá y bueno, falla la validación de lo demás campo, pero está correcta.
Por ejemplo, acá el formato fecha está correcto.
Si falla acá muestra otro formato distinto.
Bueno, entonces la idea es mantener un formato estable o personalizar nuestro formato fecha y en realidad
podemos coger cualquiera.
Bueno, para eso nos vamos al Entity y en fecha vencimiento en el atributo acá podemos anotar con doit
tain formato
importamos y acá tenemos un atributo pattern.
Acá podemos aplicar nuestro patrón de fecha y ese que va a valer por ejemplo año, mes, día, el mismo
que estamos utilizando por defecto o que se utiliza por defecto.
Esperamos que se actualice bien.
Ahora si se fijan voy a quitar esto, voy a colocar la fecha correcta.
Enviar se fijan ahora envío y se mantiene.
No cambia el formato, no cambia según la localización ni nada por el estilo.
No cambia el formato una vez que se envía tienen que se mantiene en este formato.
Ahora, qué pasa si quiero cambiar de formato y colocar en vez de latch colocar un guión?
Bien, por ejemplo acá vamos a cambiar.
Acá a Ion guión guardamos y para que esté de acuerdo con eso, también vamos a modificar acá el placeholder.
Cambiamos acá, cambiamos acá y también el Mensas Properties.
Voy a guardar y acá también.
Esperemos que se actualice.
Guardamos todo.
Volvemos enviar acá debería fallar porque el formato ahora con guión no es con el archa.
Se fijan desde una fecha en formato muy parecido, pero con guión.
Entonces ahora, por ejemplo, si usamos Septa, estaba acá en Pier.
Perfecto.
Se fijan.
Entonces puedo manejar el formato que yo quiera utilizando la anotación tayta informate bien.
La siguiente clase Vamos a revisar el input del tipo Tait y también vamos a trabajar con pasado y con
futuro como valida que sea una fecha en pasado o una fecha en futuro o también presente o combinaciones.
Bien, pero antes terminar quería ver también otro detalle.
Qué pasa si quito esto?
Quitamos la fecha?
Recuerden que antes, cuando enviamos el formulario con la fecha vacía, da un error personalizado que
no coincide el formato.
Pero qué pasa ahora?
Si colocamos enviar no puede ser nulo.
Se fija.
Cambió el mensaje.
Bueno.
Por qué?
Bueno, justamente si nos vamos a usuario es por esto.
Es por la natación.
Data en forma, claro, cuando es un string vacío, cuando se recibe un string de forma automática.
Esta anotación Data Format intercepta el valor de la fecha y lo deja en null y por eso da el mensaje
de que no puede ser nulo.
Pero cuando viene con valor, bueno, lo trata de formatear, no?
Cierto?
Le dan formato según el que tenemos acá en el patrón.
Si el formato coincide, está todo perfecto.
Bien, conviertete string del campo a un objeto fecha del tipo yaba útil data.
Ahora, si no coincide el formato en un formato incorrecto, bueno, da el error del formato justamente
que colocamos acá de ser una fecha con formato, tanto si fijan el type misma, etc. Es decir, que
no coincide el formato o el tipo de the string con el formato, la fecha y no lo puede convertir incluso.
Por ejemplo, si comentamos acá solamente para probar no es necesario que lo hagan, lo voy a guardar.
Está comentado, después lo voy a comentar.
Si enviamos ahora va a decir otra cosa.
Desde una fecha con formato se fija porque ya no se está aplicando este interceptor que realiza el cambio
de la fecha.
Volvemos.
Guardamos.
Lo dejamos como estaba.
Enviar no puede ser null.
Perfecto.
Se fijan.
Es mucho mejor utilizar el data.
Informate con el formato que queramos implementar ahora.
No siempre puede ser así, porque por ejemplo, si nuestro input es del tipo date y no text, el formato
que tenemos que manejar en esta anotación tiene que ser específico.
Pero bueno, eso lo vemos la siguiente clase.
Y recuerden si colocamos qué cosa.
Por ejemplo, a lo que queramos, cualquier texto que no sea fecha, pero también es decir quye cosa
que no coincida con este formato va a dar terror.
Y recuerden que también se puede personalizar para este campo.
Cómo?
Bueno, si nos vamos a Message Properties copiamos esto.
Bueno, ya me imagino que ya lo saben, pero taip mis.
Y acá el nombre del objeto con el cual se pasa la vista al formulario y acá el atributo.
Recuerden que la N con mayúscula mismo nombre del atributo de la clase usuario mismo nombre, atributo,
fecha N mayúscula nacimiento.
Entonces por acá el campo fecha debe ser una fecha con formato tanto bueno fecha o fecha de nacimiento,
pero como es un texto da lo mismo un mensaje da lo mismo.
Guardamos, esperamos que se actualice.
Ahora, si colocamos cualquier cosa, porque si el null se vacío no puede ser nulo y está bien, pero
si colocamos otro formato, por ejemplo s el campo fecha debe ser una fecha en formato o lo que sea.
Hola.
Cualquier cosa enviar también.
Solamente acepta ese formato.
Bien, por ahora nada más.
Continuamos en la siguiente clase.