1. LocalTimeaula

A LocalTimeclasse foi criada para casos onde você precisa trabalhar com horário mas sem data. Por exemplo, suponha que você esteja escrevendo um aplicativo de despertador. Você se importa com a hora, mas não com a data.

A LocalTimeclasse é muito semelhante à LocalDateclasse — seus objetos também não podem ser alterados após a criação.

Obtendo a hora atual

Para criar um novo LocalTimeobjeto, você precisa usar o now()método estático. Exemplo:

LocalTime time = LocalTime.now();

Onde timeé uma LocalTimevariável e é uma chamada para o método estático da classe.LocalTime.now()now()LocalTime

Exemplo:

Código Saída do console
LocalTime time = LocalTime.now();
System.out.println("Now = " + time);

Now = 09:13:13.642881600

O ponto é seguido pelo número atual de nanossegundos.

2. Conseguir um horário específico

Para obter um horário específico, você precisa usar o of()método estático. Exemplo:

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

Você passa nas horas, minutos, segundos e nanossegundos.

Exemplo:

Código Saída do console
LocalTime time = LocalTime.of(12, 15, 0, 100);
System.out.println("Now = " + time);
Now = 12:15:00.000000100

A propósito, existem mais duas variações desse método:

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

e

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

Assim você pode usar o que for mais conveniente para você.

Obtendo um tempo baseado no índice de um segundo

Você também pode obter o tempo pelo índice de um segundo em um dia. Para fazer isso, temos o ofSecondOfDay()método estático:

LocalTime time = LocalTime.ofSecondOfDay(seconds);

Onde segundos é o número de segundos desde o início do dia.

Exemplo:

Código Saída do console
LocalTime time = LocalTime.ofSecondOfDay(10000);
System.out.println(time);

02:46:40

Sim, 10.000 segundos é um pouco menos de três horas. Está tudo correto.

3. Obtendo elementos de tempo

Para obter o valor de um elemento específico de tempo de um LocalTimeobjeto, temos estes métodos:

Método Descrição
int getHour()
Retorna as horas
int getMinute()
Retorna os minutos
int getSecond()
Retorna os segundos
int getNano()
Retorna os nanossegundos

Exemplo:

Código Saída do console
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. Alterar a hora em um LocalTimeobjeto

A LocalTimeclasse também possui métodos que permitem trabalhar com o tempo. A implementação desses métodos é análoga aos métodos da LocalDateclasse: eles não alteram o LocalTimeobjeto existente, mas retornam um novo com os dados desejados.

Aqui estão os métodos da LocalTimeclasse:

Método Descrição
plusHours(int hours)
Adiciona horas
plusMinutes(int minutes)
Adiciona minutos
plusSeconds(int seconds)
Adiciona segundos
plusNanos(int nanos)
Adiciona nanossegundos
minusHours(int hours)
Subtrai horas
minusMinutes(int minutes)
Subtrai minutos
minusSeconds(int seconds)
Subtrai segundos
minusNanos(int nanos)
Subtrai nanossegundos

Exemplo:

Código Saída do console
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

Observe que, em cada caso, obtemos um novo tempo relativo ao timeobjeto original. Se você adicionar 3600 secondsa um tempo, adicionará exatamente 1hour.