多くの回答がありますが、私の状況に適合するものは見つかりません。私は8時間と日付変更の違いを見つける必要があります。時間が8時間以上の場合は、何かを実行しないでください。Java 8でLocalDateTimeを使用して2つの日付の時間差を計算する方法は?
Java-8のLocalDateTime
で同じ結果を得る方法はありますか?
私は以下を使用しようとしましたが、同じことを達成できませんでした。
LocalDateTime fromDateTime = LocalDateTime.of(2017, 07, 07, 07, 00, 55);
LocalDateTime toDateTime = LocalDateTime.now();
LocalDateTime tempDateTime = LocalDateTime.from(fromDateTime);
long years = tempDateTime.until(toDateTime, ChronoUnit.YEARS);
tempDateTime = tempDateTime.plusYears(years);
long months = tempDateTime.until(toDateTime, ChronoUnit.MONTHS);
tempDateTime = tempDateTime.plusMonths(months);
long days = tempDateTime.until(toDateTime, ChronoUnit.DAYS);
tempDateTime = tempDateTime.plusDays(days);
long hours = tempDateTime.until(toDateTime, ChronoUnit.HOURS);
tempDateTime = tempDateTime.plusHours(hours);
long minutes = tempDateTime.until(toDateTime, ChronoUnit.MINUTES);
tempDateTime = tempDateTime.plusMinutes(minutes);
long seconds = tempDateTime.until(toDateTime, ChronoUnit.SECONDS);
System.out.println("" + java.time.Duration.between(tempDateTime, toDateTime).toHours());
System.out.println(years + " years "
+ months + " months "
+ days + " days "
+ hours + " hours "
+ minutes + " minutes "
+ seconds + " seconds.");
時間と日付を別々に確認することは困難です。
は当初、私はそれが好きでコード化されたが、それは正しく見えるしません:あなたが期待ちょうど同じように、2
2017 07 06 23:30:00 - 2017 07 07 01:30:00 - Should return 2 hours.
また、 'ChronoUnit.HOURS.between(date1、date2)'を使用することもできます。 –
'LocalDateTime'は意図的にタイムゾーンの概念を持っていません。そのクラスを使用すると、夏時間(DST)などの異常を無視することになります。そのような現実を考慮するには、 'ZonedDateTime'を使います。 –
[Java 8:2つのLocalDateTimeの差分を計算する]の可能な複製(https://stackoverflow.com/questions/25747499/java-8-calculate-difference-between-two-localdatetime) – rogerdpack