java 8時間差を計算する方法の例


一.簡単に述べる
Java 8では、以下の種類を使って日付の違いを計算できます。
1.Period
2.Duration
3.ChronoUnit
二.Period類
主にPeriod種類の方法getYears()で、get Months()とget Days()は計算に来ます。
例:

package insping;

import java.time.LocalDate;
import java.time.Month;
import java.time.Period;

public class Test {

  public static void main(String[] args) {
    LocalDate today = LocalDate.now();
    System.out.println("Today : " + today);
    LocalDate birthDate = LocalDate.of(1993, Month.OCTOBER, 19);
    System.out.println("BirthDate : " + birthDate);

    Period p = Period.between(birthDate, today);
    System.out.printf("   : %d   %d   %d  ", p.getYears(), p.getMonths(), p.getDays());
  }
}

結果:
Today:2017-06-16
BirthDate:199-10-19
年齢:23年7月28日
三.Duration類
時間ベースの値(秒,ナノ秒など)を用いて時間量を測定する方法を提供した。
例:

package insping;

import java.time.Duration;
import java.time.Instant;

public class Test {

  public static void main(String[] args) {
    Instant inst1 = Instant.now();
    System.out.println("Inst1 : " + inst1);
    Instant inst2 = inst1.plus(Duration.ofSeconds(10));
    System.out.println("Inst2 : " + inst2);

    System.out.println("Difference in milliseconds : " + Duration.between(inst1, inst2).toMillis());

    System.out.println("Difference in seconds : " + Duration.between(inst1, inst2).getSeconds());
  }
}

結果:
Inst 1:2017-06-16 T 07:46:45.085 Z
Inst 2:2017-06-16 T 07:46:55.085 Z
ディfference in miliseconds:10000
ディfference in seconds:10
四.ChronoUnit類
ChronoUnit類は、単一の時間単位で、例えば、日数または秒を測定するために使用されてもよい。
以下は、between()法を使用して、2つの日付間の違いを検索する例である。

package insping;

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;

public class Test {

  public static void main(String[] args) {
    LocalDate startDate = LocalDate.of(1993, Month.OCTOBER, 19);
    System.out.println("     : " + startDate);

    LocalDate endDate = LocalDate.of(2017, Month.JUNE, 16);
    System.out.println("     : " + endDate);

    long daysDiff = ChronoUnit.DAYS.between(startDate, endDate);
    System.out.println("           : " + daysDiff);

  }
}

結果:
開始時間:199-10-19
終了時間:2017-06-16
二日間の差は日数:8641
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。