Javaで日時の比較方法を記載します。
目次
日時の比較方法
日時を比較するには、LocalDateTime クラスのメソッドを使用します。
次の3つのメソッドを使用します。
メソッド | 戻り値 | 処理 |
---|---|---|
日時1.equals(日時2) | boolean | 日時1・日時2 が同じ場合、true を返します。 |
日時1.isBefore(日時2) | boolean | 日時1 が 日時2 より前の日時の場合、true を返します。 |
日時1.isAfter(日時3) | boolean | 日時1 が 日時2 より後の日時の場合、true を返します。 |
1. 同じ日時か比較( equals )
同じ日時か比較するには、equals を使用します。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// 2021年10月1日 10時15分30秒 LocalDateTime dt1 = LocalDateTime.of(2021, 10, 1, 10, 15, 30); // 2021年10月1日 10時15分30秒 LocalDateTime dt2 = LocalDateTime.of(2021, 10, 1, 10, 15, 30); // 2021年10月1日 10時15分31秒 LocalDateTime dt3 = LocalDateTime.of(2021, 10, 1, 10, 15, 31); // 一致 boolean result1 = dt1.equals(dt2); System.out.println(result1); // true // 不一致 boolean result2 = dt1.equals(dt3); System.out.println(result2); // false |
2. 前の日時か比較( isBefore )
前の日時か比較するには、isBefore を使用します。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// 2021年10月1日 10時15分01秒 LocalDateTime dt01 = LocalDateTime.of(2021, 10, 1, 10, 15, 01); // 2021年10月1日 10時15分02秒 LocalDateTime dt02 = LocalDateTime.of(2021, 10, 1, 10, 15, 02); // 2021年10月1日 10時15分03秒 LocalDateTime dt03 = LocalDateTime.of(2021, 10, 1, 10, 15, 03); // 10時15分02秒 と 10時15分03秒 を比較 boolean result3 = dt02.isBefore(dt03); System.out.println( result3 ); // true // 同じ時間を比較(10時15分02秒 と 10時15分02秒 を比較) boolean result2 = dt02.isBefore(dt02); System.out.println( result2 ); // false // 10時15分02秒 と 10時15分01秒 を比較 boolean result1 = dt02.isBefore(dt01); System.out.println( result1 ); // false |
3. 後の日時か比較( isAfter )
後の日時か比較するには、isAfter を使用します。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// 2021年10月1日 10時15分01秒 LocalDateTime dt01 = LocalDateTime.of(2021, 10, 1, 10, 15, 01); // 2021年10月1日 10時15分02秒 LocalDateTime dt02 = LocalDateTime.of(2021, 10, 1, 10, 15, 02); // 2021年10月1日 10時15分03秒 LocalDateTime dt03 = LocalDateTime.of(2021, 10, 1, 10, 15, 03); // 10時15分02秒 と 10時15分01秒 を比較 boolean result1 = dt02.isAfter(dt01); System.out.println( result1 ); // true // 同じ時間を比較(10時15分02秒 と 10時15分02秒 を比較) boolean result2 = dt02.isAfter(dt02); System.out.println( result2 ); // false // 10時15分02秒 と 10時15分03秒 を比較 boolean result3 = dt02.isAfter(dt03); System.out.println( result3 ); // false |