Formateo de Números y Fechas


1. Formateo de Números en Thymeleaf

El formateo de números en Thymeleaf se logra utilizando la función #numbers.formatNumber, que permite mostrar números en formatos específicos según la configuración local.

Ejemplo:

<p th:text="#{#numbers.formatNumber(${precio}, 2, 'COMMA', 'DOT')}"></p>

En este ejemplo, se está formateando el valor de precio para mostrarlo con dos decimales y un separador de miles usando una coma (,) y un separador de decimales con un punto (.).

2. Formateo de Fechas en Thymeleaf

El formateo de fechas en Thymeleaf utiliza la función #dates.format, que permite mostrar fechas en diferentes formatos.

Ejemplo:

<p th:text="#{#dates.format(${fechaNacimiento}, 'dd/MM/yyyy')}"></p>

En este ejemplo, la variable fechaNacimiento se muestra en formato dd/MM/yyyy, lo que la renderiza como, por ejemplo, 15/08/2024.

3. Uso de th:field para el Formateo Automático

Cuando trabajas con formularios, Thymeleaf automáticamente gestiona el formateo de números y fechas con el uso de th:field al estar enlazado con un atributo de tipo java.util.Date o java.lang.Number en el modelo.

Ejemplo:

<input type="text" th:field="*{precio}" /> <!-- Formato automático de número -->
<input type="text" th:field="*{fechaNacimiento}" /> <!-- Formato automático de fecha -->

En este caso, si la variable precio es un número, el formato aplicado automáticamente será según la configuración local del servidor. De igual manera con la fecha.

4. Personalización del Formateo en Thymeleaf

Para personalizar el formato de números o fechas, es posible utilizar configuraciones específicas en el archivo de propiedades de internacionalización.

Ejemplo de archivo messages.properties:

precio.format=###,###.## €
fechaNacimiento.format=dd MMMM yyyy

En este ejemplo, precio.format define cómo se mostrarán los precios, mientras que fechaNacimiento.format define cómo se mostrará la fecha.

📝 Nota


Para formatear correctamente los números y fechas en Thymeleaf, asegúrate de que tu aplicación esté configurada con la localización adecuada (por ejemplo, LocaleContextHolder en Spring).