【发布时间】:2018-03-01 14:51:05
【问题描述】:
我发现了一个使用 Java Duration 的非常简单的问题。
LocalTime SaturdayStart = LocalTime.of(22, 30);
LocalTime SaturdayEnd = LocalTime.of(01, 00);
System.out.println(SaturdayStart);
System.out.println(SaturdayEnd);
System.out.println(Duration.between(SaturdayStart, SaturdayEnd));
这段代码的输出是:
22:30
01:00
PT-21H-30M
这就是问题所在。我希望持续时间不是 21H,而是 2H-30M。是什么导致该方法无法看到两次之间的“天变化”?
【问题讨论】:
-
LocalTime没有一天,这就是为什么它的名称中只有“时间”。在 LocalTime 的上下文中根本不存在像一天这样的变化。 -
也许你正在寻找
LocalDateTime。 -
返回的不是 21H,而是 MINUS 21H,是 22:30 和 01:00 之间的差异。