从概念上讲,如果从Period
(P2Y1M5D)和LocalDate
(2016-04-05)开始,可以推导出具体的Duration
(PT18360H)。
在Java中这样做的最佳(最简单,最简短,最易读)方式是什么?
首先想到的是Duration.between(start, start.plus(period))
,但是会抛出"不支持的单位:秒"。
Vanilla Java首选,但欢迎使用库(commons-lang,guava等)的答案。
答案 0 :(得分:3)
仅使用java.time
:
Duration duration = Duration.between(
LocalDateTime.of(start, LocalTime.MIDNIGHT),
LocalDateTime.of(start, LocalTime.MIDNIGHT).plus(period)
);
甚至更短,但结果不太明确:
Duration duration = Duration.ofDays(ChronoUnit.DAYS.between(start, start.plus(period)))