1. LocalDateTimeclase

La LocalDateTimeclase combina las capacidades de las clases LocalDatey LocalTime: almacena tanto una fecha como una hora. Sus objetos también son inmutables y sus métodos son similares a los de las clases LocalDatey LocalTime.

Obtener la fecha y hora actual

Aquí todo es como cabría esperar: usamos el now()método. Ejemplo:

Código Salida de consola
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

Cuando se muestra en la pantalla, la fecha y la hora están separadas por la letra T.

Obtener una fecha y hora específicas

Como era de esperar, todo es similar a las clases LocalDatey LocalTime: usamos el of()método:

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

Primero, hay parámetros que especifican la fecha en los mismos formatos que en la LocalDateclase. Luego están los parámetros que especifican el tiempo en los mismos formatos que en la LocalTimeclase. of()A continuación se proporciona una lista de todas las variaciones del método:

Métodos
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

Puede establecer la fecha directamente o establecerla indirectamente a través de objetos LocalDatey LocalTime:

Código
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
Salida de consola
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

La LocalDateTimeclase tiene métodos para obtener elementos de una fecha y/u hora. Reflejan exactamente los métodos de las clases LocalDatey LocalTime. No los repetiremos aquí.



2. Instantclase

Los creadores de Java tampoco se han olvidado de las formas de la vieja escuela.

La API de fecha y hora incluye una clase instantánea para trabajar con la hora destinada a los procesos que ocurren en las computadoras. En lugar de horas, minutos y segundos, se trata de segundos, milisegundos y nanosegundos.

Esta clase tiene dos campos que representan:

  • el número de segundos que han transcurrido desde el 1 de enero de 1970
  • un número de nanosegundos

¿La clase fue hecha para desarrolladores? Sí. Es por eso que calcula el tiempo en tiempo Unix, que comienza a principios de 1970.

Incluso se podría decir que la Instantclase es una versión simplificada de la Dateclase, conservando solo lo que necesitan los programadores.

Puede obtener un Instantobjeto exactamente de la misma manera que un LocalTimeobjeto:

Instant timestamp = Instant.now();

Where timestampes una Instantvariable y es una llamada al método estático de la clase.Instant.now()now()Instant

Ejemplo:

Código Salida de consola
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

También puede crear un nuevo objeto usando variaciones del of()método pasando el tiempo transcurrido desde el 1 de enero de 1970:

ofEpochMilli(long milliseconds)
Necesitas pasar el número de milisegundos
ofEpochSecond(long seconds)
Necesitas pasar la cantidad de segundos.
ofEpochSecond(long seconds, long nanos)
Necesitas pasar los segundos y nanosegundos

Métodos disponibles en Instantobjetos

La clase Instant tiene dos métodos que devuelven los valores de sus campos:

long getEpochSecond()
Número de segundos que han transcurrido desde el 1 de enero de 1970
int getNano()
Nanosegundos.
long toEpochMilli()
Número de milisegundos que han transcurrido desde el 1 de enero de 1970

También hay métodos para crear un nuevo Instantobjeto basado en uno existente:

Instant plusSeconds(long)
Añade segundos a la hora actual
Instant plusMillis(long)
Agrega milisegundos
Instant plusNanos(long)
Agrega nanosegundos
Instant minusSeconds(long)
Resta segundos
Instant minusMillis(long)
Resta milisegundos
Instant minusNanos(long)
Resta nanosegundos

Ejemplos:

Código Salida de consola
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z