En el programa desarrollado y mostrado en esta oportunidad, se han usado tres clases de la biblioteca de Java 8: la clase java.time.Period que sirve para determinar rangos como el total de años entre dos fechas, la clase java.time.format.DateTimeFormatter que sirve para dar diversos formatos a la fecha, y principalmente la clase java.time.LocalDate que es un objeto de fecha y hora inmutable que representa una fecha, a menudo visto como año-mes-día, además permite realizar de forma simple diversas operaciones de fecha.
A continuación, se muestra la clase GestionarFechas que demuestra parte de la funcionalidad de la clase LocalDate.
package com.sistemajava;
import java.time.LocalDate;
import java.time.Period;
import java.time.format.DateTimeFormatter;
public class GestionarFechas {
public static void main(String[] args) {
LocalDate fechaActual, nuevaFecha, fechaModificada;
String fechaFormateada;
fechaActual = LocalDate.now();
fechaFormateada = fechaActual.format(DateTimeFormatter.ISO_DATE);
System.out.println("Fecha actual en formato aaaa-mm-dd: " + fechaFormateada);
fechaFormateada = fechaActual.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println("Fecha actual en formato dd/mm/aaaa: " + fechaFormateada);
fechaFormateada = fechaActual.format(DateTimeFormatter.ofPattern("dd-MMM-yyyy"));
System.out.println("Fecha actual en formato dd-mes-aaaa: " + fechaFormateada);
fechaFormateada = fechaActual.format(DateTimeFormatter.BASIC_ISO_DATE);
System.out.println("Fecha actual en formato aaaammdd: " + fechaFormateada);
fechaFormateada = fechaActual.format(DateTimeFormatter.ISO_ORDINAL_DATE);
System.out.println("Fecha actual en formato aaaa-dias: " + fechaFormateada);
nuevaFecha = LocalDate.parse("1999-12-31");
System.out.println("Nueva fecha en formato aaaa-mm-dd: " + nuevaFecha.toString());
fechaFormateada = nuevaFecha.getDayOfMonth() + "."
+ nuevaFecha.getMonthValue() + "."
+ nuevaFecha.getYear();
System.out.println("Nueva fecha en formato dd.mm.aaaa: " + fechaFormateada);
fechaModificada = nuevaFecha.plusDays(40);
System.out.println("Fecha modificada en 40 día mas: " + fechaModificada.toString());
fechaModificada = nuevaFecha.plusMonths(3);
System.out.println("Fecha modificada en 3 meses mas: " + fechaModificada.toString());
fechaModificada = nuevaFecha.plusYears(5);
System.out.println("Fecha modificada en 5 años mas: " + fechaModificada.toString());
fechaModificada = nuevaFecha.plusYears(-3);
System.out.println("Fecha modificada en 3 años menos: " + fechaModificada.toString());
nuevaFecha = LocalDate.of(2016, 2, 12);
fechaModificada = LocalDate.of(2016, 2, 12);
if(nuevaFecha.isEqual(fechaModificada))
System.out.println("La fecha " + nuevaFecha.toString() + " es igual a " + fechaModificada.toString());
fechaModificada = LocalDate.of(2016, 3, 12);
if(nuevaFecha.isBefore(fechaModificada))
System.out.println("La fecha " + nuevaFecha.toString() + " es antes de " + fechaModificada.toString());
fechaModificada = LocalDate.of(2016, 1, 12);
if(nuevaFecha.isAfter(fechaModificada))
System.out.println("La fecha " + nuevaFecha.toString() + " es despues de " + fechaModificada.toString());
if(nuevaFecha.isLeapYear())
System.out.println("La fecha " + nuevaFecha.toString() + " es de año bisiesto");
fechaModificada = nuevaFecha.withYear(2015);
System.out.println("La fecha " + nuevaFecha.toString() + " se modifico el año " + fechaModificada.toString());
fechaModificada = nuevaFecha.withMonth(5);
System.out.println("La fecha " + nuevaFecha.toString() + " se modifico el mes " + fechaModificada.toString());
fechaModificada = nuevaFecha.withDayOfMonth(20);
System.out.println("La fecha " + nuevaFecha.toString() + " se modifico el día " + fechaModificada.toString());
fechaModificada = LocalDate.of(2020, 2, 12);
Period periodo = nuevaFecha.until(fechaModificada);
System.out.println("Entre las fechas " + nuevaFecha.toString() + " y " + fechaModificada.toString() +
" existe " + periodo.getYears() + " años");
}
}
El resultado de ejecutar el programa se muestra en la siguiente figura:


Estuvo entendible (Y)
ResponderEliminar