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