Продолжительность Java между исключением - PullRequest
4 голосов
/ 13 октября 2019

Я использую метод Продолжительность между Java, чтобы вычислить продолжительность между LocalTime и LocalDateTime, это работает, когда я помещаю localTime в качестве первого аргумента метода, но когда я изменил порядок, он дал исключение DateTimeException:

Это прекрасно работает:

 LocalTime t1 = LocalTime.now();
 LocalDateTime t2 = LocalDateTime.now();
 System.out.println(Duration.between(t1, t2));

Когда я перевернул agrs, это дало мне исключение:

 LocalTime t1 = LocalTime.now();
 LocalDateTime t2 = LocalDateTime.now();
 System.out.println(Duration.between(t2, t1));

Exception in thread "main" java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: 16:32:18.553 of type java.time.LocalTime

Может кто-нибудь объяснить, почему я получаю это исключение, спасибо за любую помощь: =)

1 Ответ

10 голосов
/ 13 октября 2019

Из документов: Продолжительность между

Если объекты относятся к разным типам, тогда продолжительность рассчитывается на основе типа первого объекта. Например, если первый аргумент является LocalTime, то второй аргумент преобразуется в LocalTime.

Таким образом, в основном, возникает ошибка, поскольку вы не можете привести объект LocalTime в LocalDateTime,информация о дате не включена в LocalTime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...