Supongamos que el siguiente fragmento:
LocalTime test = LocalTime.of(21, 14);
test.plusHours(5);
El resultado sería, normalmente, 02:14
pero quiero resumir más allá del límite de 24 horas, por lo que el resultado sería 26:14
.
En este caso, tengo un campo de entrada puede que un usuario la cantidad de tiempo que se gasta en una tarea. Sin embargo tengo que trabajar con horas (por ejemplo, 48 horas) en lugar de días (por ejemplo, 2 días y 4 horas).
¿Hay una manera que puedo lograr que dentro de la java.time
API? Si no es así, ¿qué puedo hacer para lograrlo? Estoy usando Java 8, con la primavera de arranque e Hibernate para mapear la base de datos.
java.time.Duration
Usted está utilizando el tipo de datos wront para el valor. Se necesita una Duration
. Duration
es la contraparte a nivel de tiempo de Period
:
Una cantidad basada en el tiempo de tiempo, tal como '34 0,5 segundos.
Duration durationTaken = Duration.of(5, ChronoUnit.HOURS);
Si desea relacionar eso con un concepto fecha, como para calcular el tiempo del fin, puede plus
duraciones a tipos de fecha / hora:
LocalTime endTime = test.plus(durationTaken); //02:14
Y se puede hacer eso con LocalDateTime
demasiado:
LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), test); //2019-02-07T21:14
//add the duration:
LocalDateTime endDate = startTime.plus(durationTaken); //2019-02-08T02:14