1. LocalTimeclase

La LocalTimeclase fue creada para casos en los que se necesita trabajar con tiempo pero sin fecha. Por ejemplo, suponga que está escribiendo una aplicación de despertador. Te importa la hora, pero no la fecha.

La LocalTimeclase es muy similar a la LocalDateclase: sus objetos tampoco se pueden cambiar después de la creación.

Obtener la hora actual

Para crear un nuevo LocalTimeobjeto, debe usar el now()método estático. Ejemplo:

LocalTime time = LocalTime.now();

Where timees una LocalTimevariable y es una llamada al método estático de la clase.LocalTime.now()now()LocalTime

Ejemplo:

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

Now = 09:13:13.642881600

El punto va seguido del número actual de nanosegundos.

2. Obtener un tiempo específico

Para obtener un tiempo específico, debe usar el of()método estático. Ejemplo:

LocalTime time = LocalTime.of(hours, minutes, seconds, nanoseconds);

Pasas en las horas, minutos, segundos y nanosegundos.

Ejemplo:

Código Salida de consola
LocalTime time = LocalTime.of(12, 15, 0, 100);
System.out.println("Now = " + time);
Now = 12:15:00.000000100

Por cierto, hay dos variaciones más de este método:

LocalTime time = LocalTime.of(hours, minutes, seconds);

y

LocalTime time = LocalTime.of(hours, minutes);

Así que puedes usar el que más te convenga.

Obtener un tiempo basado en el índice de un segundo

También puede obtener el tiempo por el índice de un segundo en un día. Para ello, tenemos el ofSecondOfDay()método estático:

LocalTime time = LocalTime.ofSecondOfDay(seconds);

Donde segundos es el número de segundos desde el comienzo del día.

Ejemplo:

Código Salida de consola
LocalTime time = LocalTime.ofSecondOfDay(10000);
System.out.println(time);

02:46:40

Sí, 10.000 segundos es un poco menos de tres horas. Está todo correcto.

3. Obtención de elementos de tiempo

Para obtener el valor de un elemento de tiempo específico de un LocalTimeobjeto, tenemos estos métodos:

Método Descripción
int getHour()
Devuelve las horas
int getMinute()
Devuelve los minutos
int getSecond()
Devuelve los segundos
int getNano()
Devuelve los nanosegundos

Ejemplo:

Código Salida de consola
LocalTime now = LocalTime.now();
System.out.println(now.getHour());
System.out.println(now.getMinute());
System.out.println(now.getSecond());
System.out.println(now.getNano());

2
46
40
0

4. Cambiar la hora en un LocalTimeobjeto

La LocalTimeclase también tiene métodos que te permiten trabajar con el tiempo. La implementación de estos métodos es análoga a los métodos de la LocalDateclase: no cambian el LocalTimeobjeto existente, sino que devuelven uno nuevo con los datos deseados.

Estos son los métodos de la LocalTimeclase:

Método Descripción
plusHours(int hours)
Agrega horas
plusMinutes(int minutes)
Agrega minutos
plusSeconds(int seconds)
Agrega segundos
plusNanos(int nanos)
Agrega nanosegundos
minusHours(int hours)
Resta horas
minusMinutes(int minutes)
Resta minutos
minusSeconds(int seconds)
Resta segundos
minusNanos(int nanos)
Resta nanosegundos

Ejemplo:

Código Salida de consola
LocalTime time = LocalTime.now();
LocalTime time2 = time.plusHours(2);
LocalTime time3 = time.minusMinutes(40);
LocalTime time4 = time.plusSeconds(3600);

System.out.println(time);
System.out.println(time2);
System.out.println(time3);
System.out.println(time4);





10:33:55.978012200
12:33:55.978012200
09:53:55.978012200
11:33:55.978012200

Tenga en cuenta que en cada caso obtenemos un nuevo tiempo relativo al timeobjeto original. Si agrega 3600 secondsa un tiempo, entonces agrega exactamente 1hour.