3

2 つの LocalDates 間の秒数を計算しようとしています。このコードスニペットがうまく機能していないため、実際には苦労しています。

long seconds = lastRefreshPoint.until(systemTime, ChronoUnit.SECONDS);

これは私に例外を与えます:

java.time.temporal.UnsupportedTemporalTypeException: Unsupported unit: Minutes

インターネットでこれを行う他の方法を実際に見つけることはできません。あなたが私を助けてくれたらいいのに!

前もって感謝します

4

3 に答える 3

2

Hochschild による回答は正しく、受け入れられるべきです。

LocalDate::atStartOfDay

日付のみの値から日時の値を作成するには、その日の最初の瞬間を使用します。そのためにはタイムゾーンが必要です。いつでも、日付はゾーンによって世界中で異なる場合があります。

1 日が time に始まると想定しないでください00:00:00。夏時間などの異常のため、1 日は のような時刻に始まる場合があります01:00:00

ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = myLocalDate.atStartOfDay( z );

次に、経過時間の計算に進みます。

Duration d = Duration.of( zdtStart , zdtStop );
long seconds = d.getSeconds(); 
于 2016-12-01T15:14:20.330 に答える