今回は、Javaの「java.util.concurrent.TimeUnit
」を使用して日数の差分を取得する方法を紹介していきます。
「java.util.concurrent.TimeUnit
」は、Java 1.5(Java 5.0)から導入されているクラスになります。
TimeUnit (Java Platform SE 6)
検証環境
検証に使用した環境/ライブラリを次に記載します。
- Java
- バージョン:9
使用方法
日数の差分を取得するために「TimeUnit
」の「convert
」メソッドを使用します。プログラム例は、次のようになります。
【プログラム例】
package com.fumidzuki;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
Date date1 = format.parse("2021/10/01");
Date date2 = format.parse("2021/10/20");
System.out.print(TimeUnit.DAYS.convert(date2.getTime() - date1.getTime(), TimeUnit.MILLISECONDS));
}
}
【実行結果】
19
【プログラム詳細】
差分を取得するための日付情報を2つ用意します。例では、「java.util.Date
」を指定しています。
「TimeUnit.DAYS
」の「convert
」メソッドは、指定した情報を「日数」へ変換した値を取得することができます。引数には、それぞれ次の値を指定します。
- 指定時間
- 指定時間の単位
「指定時間」は、変換対象の時間を指定します。
「指定時間の単位」に指定する単位は、今回の例では「TimeUnit.MILLISECONDS
(ミリ秒)」にする必要があります。ミリ秒を指定するのは、「java.util.Date
」の「getTime
」メソッドで取得した結果がミリ秒になるためです。
まとめ
「java.util.concurrent.TimeUnit
」を使用して、日付の差分を取得する方法を紹介しました。