Otras clase de manejo de fechas¶
Introducción¶
La API de Java, a parte de todas las clases ya vistas, contiene otras clases para el manejo de fechas y horas:
Instant
: Esta clase modela un solo punto instantáneo en la línea de tiempo. Esto podría usarse para registrar marcas de tiempo de eventos en la aplicación.Period
: Una cantidad de tiempo basada en fechas en el sistema de calendario ISO-8601, como '2 años, 3 meses y 4 días'. Esta clase modela una cantidad o cantidad de tiempo en términos de años, meses y días.ZonedDateTime
es una representación inmutable de una fecha y hora con una zona horaria. Esta clase almacena todos los campos de fecha y hora, con una precisión de nanosegundos, y una zona horaria, con un desplazamiento de zona utilizado para manejar fechas y horas locales ambiguas. Por ejemplo, el valor "2 de octubre de 2007 a las 13:45.30.123456789 +02:00 en la zona horaria de Europa/París" se puede almacenar en un archivo ZonedDateTime.
ChronoUnit¶
El enum ChronoUnit
contiene unidades para fechas y horas, como por ejemplo, DAYS, MONTHS, WEEKS, YEARS, HOURS, MINUTES, SECONDS, etc. Representa una unidad de tiempo y tiene método que nos permite manejar fechas como between
que te devuelve la distancia entre dos fechas. Veamos un ejemplo:
public class ChronosUnitExample {
private void show() {
LocalDateTime today = LocalDateTime.now();
LocalDateTime someDay = LocalDateTime.of(2022, 6, 6, 0, 0, 0);
for (ChronoUnit chronoUnit: ChronoUnit.values()) {
System.out.printf("La diferencia entre %s y %s en %s: %d\n", today, someDay, chronoUnit,
chronoUnit.between(today, someDay));
}
}
public static void main(String[] args) {
new ChronosUnitExample().show();
}
}