从 `Period` 和 `LocalDate` 获取 `Duration`

Get `Duration` from `Period` and `LocalDate`

从概念上讲,给定一个 Period (P2Y1M5D) 和一个 LocalDate (2016-04-05) 作为起点,可以推导出一个具体的 Duration (PT18360H)。

在 Java 中执行此操作的最佳(最简单、最短、最易读)方法是什么?

第一个想到的是 Duration.between(start, start.plus(period)),但结果是 "Unsupported unit: Seconds"。

首选 Vanilla Java,但欢迎使用库(commons-lang、guava 等)回答。

仅使用 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)))