Java LocalDate y el manejo de Fecha

El concepto de Java LocalDate es hoy por hoy imprescindible a la hora de trabajar con fechas todos los proyectos medianamente modernos usan ya Java 11 o Java 17 con algunas casuisticas sobre Java 8 pero todos soportan ya el API moderno de fechas . ¿Como funciona este API ? . Pues funciona creando fechas que son objetos inmutables es decir cada vez que hacemos una modificación se genera un nuevo objeto con los cambios realizados.

Por ello es un poco peculiar la forma que tiene de construir el concepto de fecha.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class EjemploLocalDate {

    public static void main(String[] args) {
        // Obtener la fecha actual
        LocalDate fechaActual = LocalDate.now();

        // Formatear la fecha como una cadena
        DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        String fechaFormateada = fechaActual.format(formato);

        // Imprimir la fecha formateada
        System.out.println("Fecha actual: " + fechaFormateada);
    }
}

Java 8 Detalles

Como se puede observar o se usa LocalDate.now() o se usa el método ofPattern() con un patrón a medida . Esto permite una gestión de las fechas muy directa pero no el uso de un constructor que antiguamente era tan típico. A partir de ahora como he dicho las fechas pasan a ser objetos inmutables cada modificación genera una nueva instancia.

Modificar Java LocalDate (Java 8)

Para modificar la fecha con Java 8 necesitaremos usar los métodos plus y minus añadiéndole al final Year , Days etc. Esto nos generará un nuevo objeto que nos permite gestionar las modificaciones realizadas de forma sencilla.

import java.time.LocalDate;

public class ModificarFecha {

    public static void main(String[] args) {
        // Obtener la fecha actual
        LocalDate fechaActual = LocalDate.now();
        System.out.println("Fecha actual: " + fechaActual);

        // Sumar días a la fecha actual
        LocalDate fechaSumaDias = fechaActual.plusDays(5);
        System.out.println("Fecha después de sumar 5 días: " + fechaSumaDias);

        // Restar meses a la fecha actual
        LocalDate fechaRestaMeses = fechaActual.minusMonths(2);
        System.out.println("Fecha después de restar 2 meses: " + fechaRestaMeses);

        // Sumar años a la fecha actual
        LocalDate fechaSumaAnios = fechaActual.plusYears(3);
        System.out.println("Fecha después de sumar 3 años: " + fechaSumaAnios);
    }
}

El resultado de este código sería:

Fecha actual: 2023-05-30
Fecha despues de sumar 5 dias: 2023-06-04
Fecha despues de restar 2 meses: 2023-03-30
Fecha despues de sumar 3 años: 2026-05-30

Otros artículos relacionados