Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Existe alguma classe que faz para horas o que Period faz para datas?

Notei que a classe Period só funciona para comparar datas, uma vez que só aceita LocalDate como parâmetros para a função between, e seus getters são todos relacionados a dias, meses, anos...

Eu encontrei uma classe Duration que parece servir ao mesmo propósito para horas, mas tudo que consigo dele é o número de segundos e de nanossegundos, o que eu achei muito limitado...

Nesta nova API de tempo do Java 8 existe alguma forma direta de obter o número de horas passadas entre dois períodos? Ou tenho que pegar os segundos obtidos da Duration e calcular por conta própria?

Estou usando o jre1.8.0_171.

2 respostas
solução!

Boa tarde Maykon.

Duas formas de fazer.

1) Diferença de tempo entre duas LocalDate:

Period period = Period.between(LocalDate.parse("2018-01-18"), LocalDate.parse("2018-02-14"));

2) Diferença entre uma representação que contém informações de tempo:

Duration duration = Duration.between(LocalDateTime.parse("2018-01-18T06:30"), LocalDateTime.parse("2018-02-14T22:58"));


long hours = duration.toHours();

Espero ter ajudado.

Falha minha... Quando procurei pelas funçoes da Duration no Eclipse, eu já fui logo vendo os getters, e esses só existem para segundos e nanossegundos. Eu não percebi que havia esses métodos "to" (toHours, toMinutes)...

Obrigado pela ajuda.