La clase Java LocalDate es inmutable, lo que significa que una vez que se crea una instancia, no puede modificarla. LocalDate proporciona muchos métodos útiles para manipular y consultar fechas, como sumar o restar días, meses o años, obtener el día de la semana o verificar si una fecha es anterior o posterior a otra fecha.
Ejemplo de fecha local
Comencemos con un ejemplo simple que crea una instancia de LocalDate para la fecha actual y la imprime en la consola:import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("Today's date: " + today);
}
}
En este ejemplo, importamos la clase LocalDate del paquete java.time y creamos una nueva instancia de LocalDate llamada hoy usando el método estático now() . Este método devuelve un objeto LocalDate que representa la fecha actual según el reloj del sistema en la zona horaria predeterminada. Luego imprimimos la fecha actual en la consola usando el método println() del objeto System.out . La salida se verá así:
Producción
Fecha de hoy: 2023-05-01
Constructores de fecha local
Además del método now() , LocalDate proporciona varios otros constructores que le permiten crear instancias de LocalDate desde diferentes fuentes. Por ejemplo, puede crear una fecha local a partir de un año, mes y día específicos:import java.time.LocalDate;
public class LocalDateConstructorExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.of(2023, 5, 1);
System.out.println("Date 1: " + date1);
}
}
Este código crea una nueva instancia de LocalDate llamada fecha1 con el año 2023, el mes de mayo (representado por el valor 5) y el día 1. El resultado será:
Producción
Fecha 1: 2023-05-01
Manipulación de fecha local
Una de las características más útiles de LocalDate es la capacidad de manipular fechas. Por ejemplo, puede sumar o restar días, meses o años utilizando los métodos más y menos :import java.time.LocalDate;
public class LocalDateManipulationExample {
public static void main(String[] args) {
LocalDate date3 = LocalDate.parse("2023-05-01");
LocalDate date4 = date3.plusDays(1);
LocalDate date5 = date3.minusMonths(1);
LocalDate date6 = date3.plusYears(1);
System.out.println("Date 3: " + date3);
System.out.println("Date 4: " + date4);
System.out.println("Date 5: " + date5);
System.out.println("Date 6: " + date6);
}
}
En este ejemplo, primero creamos una nueva instancia de LocalDate llamada date3 analizando la cadena "2023-05-01". Luego creamos tres nuevas instancias de LocalDate llamadas fecha4 , fecha5 y fecha6 sumando o restando días, meses o años de fecha3 . La salida será:
Fecha 3: 2023-05-01 Fecha 4: 2023-05-02 Fecha 5: 2023-04-01 Fecha 6: 2024-05-01
Comparando fechas locales
LocalDate también proporciona métodos para comparar fechas. Puedes verificar si dos instancias de LocalDate son iguales, o si una está antes o después de otra usando los métodos equals() , isBefore() y isAfter() :import java.time.LocalDate;
public class LocalDateCompareExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.parse("2023-05-01");
LocalDate date2 = LocalDate.parse("2023-05-02");
System.out.println("Are the dates equal? " + date1.equals(date2));
System.out.println("Is date1 before date2? " + date1.isBefore(date2));
System.out.println("Is date2 after date1? " + date2.isAfter(date1));
}
}
En este ejemplo, creamos dos instancias de LocalDate llamadas date1 y date2 , y luego usamos los métodos equals() , isBefore() y isAfter() para compararlas. La salida estará en forma booleana, es decir, verdadero o falso :
¿Las fechas son iguales? false ¿La fecha1 es anterior a la fecha2? verdadero ¿La fecha2 es posterior a la fecha1? verdadero
Fecha y hora local
Si necesita representar una fecha y hora, puede usar la clase LocalDateTime , que es similar a LocalDate pero incluye un componente de hora. LocalDateTime proporciona métodos para manipular y consultar las partes de fecha y hora. A continuación se muestra un ejemplo de cómo crear una instancia de LocalDateTime :import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime datetime = LocalDateTime.now();
System.out.println("Current date and time: " + datetime);
}
}
Este código importa la clase LocalDateTime y crea una nueva instancia llamada datetime usando el método now() . La salida se verá así:
Fecha y hora actual: 2023-05-01T15:30:00.123456789
Nota: La 'T' en la salida indica el inicio de la marca de tiempo.
GO TO FULL VERSION