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

Java 从'Period'和'LocalDate'获取'Duration'`,java,datetime,java-time,Java,Datetime,Java Time,从概念上讲,给定一个期间(P2Y1M5D)和一个本地日期(2016-04-05),可以导出具体的持续时间(PT18360H) 在Java中实现这一点的最佳(最简单、最短、最可读)方法是什么 首先想到的是持续时间.between(start,start.plus(period)),但这会抛出“不支持的单位:秒” 首选香草Java,但欢迎使用库(commons lang、guava等)回答。使用Java。时间仅限: Duration duration = Duration.between(

从概念上讲,给定一个
期间
(P2Y1M5D)和一个
本地日期
(2016-04-05),可以导出具体的
持续时间
(PT18360H)

在Java中实现这一点的最佳(最简单、最短、最可读)方法是什么

首先想到的是
持续时间.between(start,start.plus(period))
,但这会抛出“不支持的单位:秒”


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

使用
Java。时间仅限:

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)))

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

任何下层选民想提出一些改进意见吗?不要认为真的有办法做到这一点。年复一年、月复一年都不能很好地转化为几天、几秒钟等等。@posal有关一些方法,请参见答案:)有没有选民想要提出一些改进建议?不要认为真的有办法做到这一点。年和月不能很好地转化为天、秒等。@posal有关某些方法,请参阅答案:)