Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
La API de fecha y hora de Java es un conjunto sólido y completo de herramientas para administrar fechas y horas. Ofrece muchas funciones que se pueden aprovechar para una gestión precisa del tiempo en aplicaciones Java.
En este artículo, veremos algunas de las funciones clave de la API de fecha y hora y cómo se pueden usar para una gestión precisa del tiempo. También veremos algunos ejemplos de código que demuestran estas funciones en acción.
Una de las tareas más comunes cuando se trabaja con fechas y horas es obtener la fecha y la hora actuales. La API de fecha y hora facilita esta tarea con el método estático now()
de la clase Instant
. Este método devuelve un objeto Instant
que representa la fecha y la hora actuales.
Instant now = Instant.now();
Una vez que tenemos un objeto Instant
, podemos formatearlo a nuestro gusto usando el método format()
. Este método toma un objeto DateTimeFormatter
como argumento. Este objeto formateador define el formato en el que queremos que se muestre la fecha y la hora.
Hay muchos formateadores integrados disponibles en la clase DateTimeFormatter
. Por ejemplo, podemos usar el método ofLocalizedDateTime()
para obtener un formateador que formatee la fecha y la hora de forma localizada.
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL);
String formattedDateTime = now.format(formatter);
El código anterior formatea el objeto Instant
now
usando el estilo de formato FULL
. Este estilo da como resultado una cadena de fecha y hora que se ve así: "Lunes, 4 de mayo de 2020 10:15:30 p. m. PDT".
Además de formatear fechas y horas, la API de fecha y hora también nos permite analizarlas. Esto puede ser útil cuando necesitamos convertir una representación de cadena de una fecha y hora en un objeto 'Instantáneo'.
Al igual que con el formato, usamos un objeto DateTimeFormatter
para analizar fechas y horas. Una vez más, hay muchos formateadores integrados disponibles. Podemos usar el método ofPattern()
para crear un formateador que use un patrón de fecha y hora personalizado.
String dateTimeString = "2020-05-04 22:15:30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
Instant instant = Instant.parse(dateTimeString, formatter);
El código anterior analiza la cadena dateTimeString
usando el patrón yyyy-MM-dd HH:mm:ss
. Este patrón define cómo se estructura la cadena de fecha y hora. El objeto 'Instantáneo' que se genera se puede utilizar como cualquier otro objeto 'Instantáneo'.
Otra tarea común cuando se trabaja con fechas y horas es tratar con zonas horarias. La API de fecha y hora facilita el trabajo con zonas horarias al proporcionar la clase ZoneId
. Esta clase representa un identificador de zona horaria.
Podemos usar el método estático of()
de la clase ZoneId
para obtener un objeto ZoneId
para una zona horaria específica. Por ejemplo, podemos obtener un objeto ZoneId
para la zona horaria del Pacífico como este:
ZoneId zoneId = ZoneId.of("America/Los_Angeles");
Una vez que tenemos un objeto ZoneId
, podemos usarlo para convertir un objeto Instant
en un objeto ZonedDateTime
. Este objeto representa una fecha y hora en una zona horaria específica.
ZonedDateTime zonedDateTime = now.atZone(zoneId);
También podemos usar un objeto ZoneId
para formatear una cadena de fecha y hora en una zona horaria específica.
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL);
String formattedDateTime = zonedDateTime.format(formatter);
Otra característica útil de la API de fecha y hora es la capacidad de ajustar fechas y horas. Esto se puede hacer usando el método with()
de las clases Instant
y ZonedDateTime
.
Este método toma un objeto TemporalAdjuster
como argumento. Este objeto define cómo se debe ajustar la fecha o la hora. Hay muchos ajustadores integrados disponibles, como next()
, nextOrSame()
, previous()
, previousOrSame()
y firstDayOfMonth()
.
Instant instant = now.with(next(DayOfWeek.MONDAY));
El código anterior ajusta el objeto Instant
ahora
para que represente el próximo lunes.
Además de trabajar con fechas y horas, la API de fecha y hora también proporciona una forma de medir el tiempo. Esto puede ser útil para medir el tiempo que tardan ciertas operaciones.
Podemos usar la clase 'Duración' para medir la cantidad de tiempo entre dos objetos 'Instantáneos'. Por ejemplo, podemos medir la duración entre ahora
e instante
así:
Duration duration = Duration.between(now, instant);
Entonces podemos usar el método getSeconds()
para obtener el número total de segundos en la duración.
long seconds = duration.getSeconds();
La API de fecha y hora de Java es un poderoso conjunto de herramientas para trabajar con fechas y horas. Ofrece muchas funciones que se pueden aprovechar para una gestión precisa del tiempo en aplicaciones Java. En este artículo, hemos visto algunas de las funciones clave de la API de fecha y hora y cómo se pueden usar para una gestión precisa del tiempo.