2016-04-05 5 views
0

概念的には、Period(P2Y1M5D)とLocalDate(2016-04-05)を開始すると、コンクリートDuration(PT18360H)を導出できます。「Period」と「LocalDate」から「Duration」を取得する

Javaでこれを行うのに最適な(もっとも単純で最短で読みやすい)方法は何ですか?

最初に考えたのはDuration.between(start, start.plus(period))でしたが、「Unsupported unit:Seconds」がスローされます。

バニラの方が優先ですが、ライブラリ(commons-lang、guavaなど)を使用した回答は歓迎します。

+0

どれdownvotersは、いくつかの改善点を提案したいの? – OrangeDog

+0

これを行う方法が本当にあるとは思わないでください。年と月は日、秒などにうまく翻訳されません。 – Savior

+0

@Pillarいくつかの点については、回答を参照してください:) – OrangeDog

答えて

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))) 
関連する問題