从 `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)))
从概念上讲,给定一个 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)))