异常之间的Java持续时间

E2r*_*abi 4 java time java-8

我使用java Duration between方法计算到LocalTime和LocalDateTime之间的持续时间,当我将localTime用作该方法的第一个参数时,它起作用了,但是当我颠倒顺序时,它给出了DateTimeException异常:

这项工作很好:

 LocalTime t1 = LocalTime.now();
 LocalDateTime t2 = LocalDateTime.now();
 System.out.println(Duration.between(t1, t2));
Run Code Online (Sandbox Code Playgroud)

当我扭转农业生产时,它给了我一个例外:

 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
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我得到这个异常感谢您的帮助:=)

rep*_*cus 10

从文档: 之间的持续时间

如果对象属于不同类型,则根据第一个对象的类型来计算持续时间。例如,如果第一个参数是LocalTime,则第二个参数将转换为LocalTime。

因此,基本上,由于无法将LocalTime对象强制转换为LocalDateTime而引发了错误,日期信息未包含在LocalTime中。

  • 感谢您添加链接的编辑! (2认同)