Java Time
LocalTime
Java Time LocalTime
O LocalTime representa a hora sem data.
Semelhante a LocalDate, podemos criar uma instância de LocalTime a partir do relógio do sistema ou usando os métodos parse e of.
Vamos agora dar uma olhada rápida em algumas das APIs comumente usadas.
Uma instância do LocalTime atual pode ser criada a partir do relógio do sistema:

Instanciação
LocalTime horaAtual = LocalTime.now();
LocalTime horaMinutoSegundoEspecifico = LocalTime.of(13,21,42); // 13:21:42
LocalTime horaMinutoEspecifico = LocalTime.of(13,21); // 13:21
LocalTime horaDeUmaString = LocalTime.parse("13:21:42");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HHmmss");
LocalTime horaDeUmaStringDespadronizada = LocalTime.parse("132142", formatter); // 13:21:42
🔔 Atenção
Memorize ao máximo esta tabelinha quando quiser converter / formatar data e hora com estruturas específicas:
Memorize ao máximo esta tabelinha quando quiser converter / formatar data e hora com estruturas específicas:
| Letra | Campo | Exemplo |
|---|---|---|
| G | Era designator | AD |
| y | Year | 2018 (yyyy), 18 (yy) |
| M | Month in year | July (MMMM), Jul (MMM), 07 (MM) |
| w | Results in week in year | 16 |
| W | Results in week in month | 3 |
| D | Gives the day count in the year | 266 |
| d | Day of the month | 09 (dd), 9(d) |
| F | Day of the week in month | 4 |
| E | Day name in the week | Tuesday, Tue |
| u | Day number of week | where 1 represents Monday, 2 represents Tuesday and so on 2 |
| a | AM or PM marker | AM |
| H | Hour in the day | (0-23) 12 |
| k | Hour in the day | (1-24) 23 |
| K | Hour in am/pm | for 12 hour format (0-11) 0 |
| h | Hour in am/pm | for 12 hour format (1-12) 12 |
| m | Minute in the hour | 59 |
| s | Second in the minute | 35 |
| S | Millisecond in the minute | 978 |
| z | Timezone Pacific Standard | Time; PST; GMT-08:00 |
| Z | Timezone offset in hours (RFC pattern) | -0800 |
| X | Timezone offset in ISO format | -08; -0800; -08:00 |
Manipulação
LocalTime horaAtual = LocalTime.now();
LocalTime horaAtualMais30Minutos = horaAtual.plusMinutes(30);
LocalTime horaAtualMenos2Horas = horaAtual.minusHours(2);
System.out.println(horaAtual);
System.out.println(horaAtualMais30Minutos);
System.out.println(horaAtualMenos2Horas);
Comparação
LocalTime horaAtual = LocalTime.now();
LocalTime horaAtualMenos2Horas = horaAtual.minusHours(2);
boolean passado = horaAtual.isBefore(horaAtualMenos2Horas);
System.out.println(passado);
Formatação
LocalTime hora = LocalTime.of(13,21,42);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ss-mm-HH");
String horaFormatada = hora.format(formatter);
System.out.println(horaFormatada); //42-21-13
Dados específicos
LocalTime hora = LocalTime.of(13,21,42);
System.out.println(hora.getHour()); //13
System.out.println(hora.getMinute()); //21
System.out.println(hora.getSecond()); //42
System.out.println(hora.getNano()); //0