Java 日時の差分を求めるサンプル

Javaの日時の差分を求めるサンプルです。

目次

サンプル 月の差分を求める
  日の差分を求める
  時間の差分を求める

月の差分を求める

年月の差分を求めるサンプルです。
2019年10月から2020年1月の差分を求めます。

package test1;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
import java.time.temporal.ChronoUnit;
 
public class Test1 {
	public static void main(String[] args) {
		
		// 1.年月日をセット
//		LocalDateTime ldate1 = LocalDateTime.of(2019,10,01,0,0,0);
		LocalDate ldate1 = LocalDate.of(2019,10,01);
		// 2.年月日をセット
//		LocalDateTime ldate2 = LocalDateTime.of(2020,1,12,0,0,0);
		LocalDate ldate2 = LocalDate.of(2020,1,12);
		
		System.out.println(ChronoUnit.MONTHS.
		between(YearMonth.from(ldate1),YearMonth.from(ldate2))); //3
 	}
}

12,15行目は、LocalDateクラスで年月日のインスタンスを生成しています。
11,14行目は、LocalDateTimeクラスで行う場合です。こちらでも可能です。

17,18行目は、ChronoUnitのMONTHSとbetweenメソッドで年月の差分を求めています。
対象の年月は、YearMonthクラスとfromメソッドで年月を取得しています。

Chronoは、時という意味です。

以下は、OracleのChronoUnit列挙型のリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/time/temporal/ChronoUnit.html#between-java.time.temporal.Temporal-java.time.temporal.Temporal-

以下は、OracleのYearMonthクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/time/YearMonth.html#from-java.time.temporal.TemporalAccessor-

日の差分を求める

日数の差分を求めるサンプルです。
2019/12/31の0時から2020/1/2の0時の差分を求めます。

package test1;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
 
public class Test1 {
	public static void main(String[] args) {
		
		// 1.年月日をセット
		LocalDate ldate1 = LocalDate.of(2019,12,31);
		// 2.年月日をセット
		LocalDate ldate2 = LocalDate.of(2020,1,2);
		
		System.out.println(ChronoUnit.DAYS.between(ldate1,ldate2)); //2
 	}
}

9,11行目は、LocalDateクラスで年月日のインスタンスを生成しています。
13行目は、ChronoUnitのDAYSとbetweenメソッドで日の差分を求めています。

時間の差分を求める

時間の差分を求めるサンプルです。
2019/12/31から2020/1/2の差分を求めます。

package test1;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
import java.time.temporal.ChronoUnit;
 
public class Test1 {
	public static void main(String[] args) {
		
		// 1.年月日時分秒をセット
		LocalDateTime ldate1 = LocalDateTime.of(2019,12,31,0,0,0);
		// 2.年月日時分秒をセット
		LocalDateTime ldate2 = LocalDateTime.of(2020,1,2,0,0,0);
		
		System.out.println(ChronoUnit.HOURS.between(ldate1,ldate2)); //48
 	}
}

9,11行目は、LocalDateTimeクラスで年月日時分秒のインスタンスを生成しています。
15行目は、ChronoUnitのHOURSとbetweenメソッドで時間の差分を求めています。

関連の記事

Java 現在日時の取得と表示形式のサンプル
Java 日時を計算するサンプル(加算と減算)

△上に戻る