カテゴリ: Java 更新日: 2026/10/01

JavaのLocalDateTimeクラスのequalsメソッドを完全ガイド!日時が同じか比較する方法

LocalDateTimeのequalsメソッド
LocalDateTimeのequalsメソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaで2つの日付と時刻が同じかどうかを調べたいときは、どのように比較すればいいですか?」

先生

「Javaでは、java.timeパッケージのLocalDateTimeクラスに用意されているequalsメソッドを使うと、2つの日時が同じかどうかを簡単に比較できます。」

生徒

「日付だけではなく、時間まで含めて比較されるんですか?」

先生

「はい。年、月、日、時、分、秒などの日時情報を比較できます。まずはLocalDateTimeの基本から確認して、equalsメソッドの使い方を順番に見ていきましょう。」

1. LocalDateTimeクラスとは?

1. LocalDateTimeクラスとは?
1. LocalDateTimeクラスとは?

JavaのLocalDateTimeクラスは、日付と時刻をまとめて扱うためのクラスです。java.timeパッケージに含まれており、Javaで日時を扱うときによく利用されます。

例えば、予約システムで予約日時を保存したり、会議の開始日時を管理したり、商品の注文日時を記録したりするときに利用できます。日付だけを扱うLocalDateや、時刻だけを扱うLocalTimeとは異なり、LocalDateTimeでは日付と時刻の両方を1つの値として管理できます。

初心者の方は、LocalDateTimeをカレンダーの日付と時計の時刻を組み合わせたものと考えると理解しやすいでしょう。例えば、ある日の午前10時30分という情報を1つのオブジェクトとして扱えます。

LocalDateTimeにはタイムゾーンの情報は含まれていません。日本時間や米国時間などの地域ごとの時差を直接管理するクラスではない点も覚えておきましょう。

LocalDateTimeをプログラムで使用するときは、通常は次のようにimportを記述します。


import java.time.LocalDateTime;

public class LocalDateTimeExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2026, 10, 15, 10, 30);

        System.out.println(dateTime);
    }
}

このプログラムでは、ofメソッドを使って日時を指定しています。年、月、日、時、分の順番で値を渡すことで、指定した日時を表すLocalDateTimeオブジェクトを作成できます。


2026-10-15T10:30

実行結果では、日付と時刻の間に英字のTが表示されます。これは日時を表現するときに使われる一般的な形式です。画面に表示するときは必要に応じて書式を変更できますが、まずはLocalDateTimeが日付と時刻をまとめて保持していることを理解しておけば十分です。

2. equalsメソッドとは?

2. equalsメソッドとは?
2. equalsメソッドとは?

equalsメソッドは、2つのLocalDateTimeオブジェクトが同じ日時を表しているかどうかを確認するために使います。Javaで日時を比較する方法を調べていると、equalsという名前を目にすることがありますが、意味は難しくありません。

比較した2つの日時が同じ場合はtrue、異なる場合はfalseが返されます。trueは条件が成立していること、falseは条件が成立していないことを表すJavaの真偽値です。

基本的な書き方は、比較元のLocalDateTimeオブジェクトに続けてequalsメソッドを記述し、丸括弧の中へ比較したいオブジェクトを指定します。


import java.time.LocalDateTime;

public class EqualsExample {
    public static void main(String[] args) {
        LocalDateTime dateTime1 = LocalDateTime.of(2026, 10, 15, 10, 30);
        LocalDateTime dateTime2 = LocalDateTime.of(2026, 10, 15, 10, 30);

        boolean result = dateTime1.equals(dateTime2);

        System.out.println(result);
    }
}

true

dateTime1とdateTime2は別々に作成したオブジェクトですが、どちらも同じ日時を表しています。そのため、equalsメソッドによる比較結果はtrueになります。

ここで大切なのは、変数そのものが同じかどうかではなく、LocalDateTimeが表している日時の内容を比較しているという点です。Java初心者の方が日時比較を学習するときには、この考え方を理解しておくと、条件分岐と組み合わせた処理も作りやすくなります。

3. 異なる日時をequalsメソッドで比較する方法

3. 異なる日時をequalsメソッドで比較する方法
3. 異なる日時をequalsメソッドで比較する方法

次に、異なる日時をequalsメソッドで比較してみましょう。年月日が同じであっても、時刻が異なれば同じLocalDateTimeではありません。

例えば、予約日時として午前10時30分と午前11時30分が登録されている場合、この2つは同じ日ですが予約時間は異なります。このような違いもequalsメソッドを使えば簡単に判定できます。


import java.time.LocalDateTime;

public class DifferentDateTimeExample {
    public static void main(String[] args) {
        LocalDateTime first = LocalDateTime.of(2026, 10, 15, 10, 30);
        LocalDateTime second = LocalDateTime.of(2026, 10, 15, 11, 30);

        System.out.println(first.equals(second));
    }
}

false

この例では、日付はどちらも同じですが、時刻が異なっています。そのため、実行結果はfalseになります。

LocalDateTimeでは、年、月、日だけを見て同じかどうかを判断するわけではありません。時、分、秒、さらに細かな時間の情報まで含めた日時として比較されます。そのため、日付だけを比較したい場合にはLocalDateTimeのequalsメソッドをそのまま使うのではなく、日付部分を取り出して比較する方法を検討する必要があります。

日付が同じだからといって、LocalDateTime同士の比較結果が必ずtrueになるわけではありません。時刻まで同じかどうかを確認することが大切です。

4. equalsメソッドをif文と組み合わせる方法

4. equalsメソッドをif文と組み合わせる方法
4. equalsメソッドをif文と組み合わせる方法

実際のJavaプログラムでは、単純にtrueやfalseを画面へ表示するだけでなく、日時が一致したときだけ特定の処理を実行したい場合があります。そのような場面では、equalsメソッドとif文を組み合わせると便利です。

例えば、予約日時と希望日時が一致しているかを確認する処理を考えてみましょう。予約管理システムやスケジュール管理システムでは、このような日時比較の考え方がよく登場します。


import java.time.LocalDateTime;

public class ReservationExample {
    public static void main(String[] args) {
        LocalDateTime reservation = LocalDateTime.of(2026, 10, 20, 14, 0);
        LocalDateTime request = LocalDateTime.of(2026, 10, 20, 14, 0);

        if (reservation.equals(request)) {
            System.out.println("予約日時が一致しています");
        } else {
            System.out.println("予約日時が異なります");
        }
    }
}

予約日時が一致しています

reservation.equals(request)の結果がtrueになると、if文の中に書かれている処理が実行されます。一方、日時が異なってfalseになった場合は、else側の処理が実行されます。

このように、JavaのLocalDateTimeとequalsメソッドは、条件分岐と組み合わせることで実用的な日時判定に利用できます。会議日時の確認、予約時間の照合、処理予定日時の確認など、さまざまな場面に応用できます。

5. 日付だけが同じか比較したい場合

5. 日付だけが同じか比較したい場合
5. 日付だけが同じか比較したい場合

LocalDateTimeのequalsメソッドでは、日付と時刻を含めて比較します。しかし実際のプログラムでは、時間が違っていても同じ日であれば同じものとして扱いたい場合があります。

例えば、午前9時に注文された商品と午後3時に注文された商品が、同じ日に注文されたものか確認したい場合です。この場合、LocalDateTimeをそのままequalsメソッドで比較すると、時刻が異なるためfalseになります。

日付だけを比較するときは、toLocalDateメソッドを使ってLocalDateを取り出してから比較すると分かりやすくなります。


import java.time.LocalDateTime;

public class SameDateExample {
    public static void main(String[] args) {
        LocalDateTime morning = LocalDateTime.of(2026, 10, 25, 9, 0);
        LocalDateTime afternoon = LocalDateTime.of(2026, 10, 25, 15, 0);

        boolean sameDate = morning.toLocalDate().equals(afternoon.toLocalDate());

        System.out.println(sameDate);
    }
}

true

午前9時と午後3時なのでLocalDateTime全体では異なる日時ですが、どちらも同じ日付です。toLocalDateメソッドによって時刻を除いた日付部分だけを取り出しているため、比較結果はtrueになります。

反対に、時刻だけを比較したい場合にはtoLocalTimeメソッドを利用できます。Javaで日時を比較するときは、日付と時刻の両方を比較したいのか、日付だけを比較したいのか、時刻だけを比較したいのかを最初に整理することが重要です。

6. equalsメソッドと比較演算子の違い

6. equalsメソッドと比較演算子の違い
6. equalsメソッドと比較演算子の違い

Javaを学び始めたばかりの方が迷いやすいポイントとして、equalsメソッドと比較演算子の違いがあります。数値を比較するときには比較演算子を使うことが多いため、日時の比較でも同じように書けるのではないかと考えることがあります。

しかし、LocalDateTimeは単純な整数ではなくオブジェクトです。2つのLocalDateTimeが表している日時の内容が同じかを確認したい場合には、equalsメソッドを使う書き方が分かりやすく適切です。

Javaでは、オブジェクトの比較を理解するときに、参照の比較と内容の比較を区別することが重要です。equalsメソッドは、オブジェクトが表す内容について等しいかどうかを確認するときに利用されます。

初心者が覚えておきたいポイント

LocalDateTimeの日時が同じか確認するときはequalsメソッドを利用します。

同じ日時であればtrueが返されます。

日時が異なればfalseが返されます。

日付だけを比較するときはtoLocalDateを利用できます。

文字列を比較するときにもequalsメソッドを使うことがありますが、LocalDateTimeでも基本的な考え方は似ています。Javaでオブジェクトを扱う機会が増えてくると、equalsメソッドによる比較は頻繁に登場するため、ここで使い方を身につけておくと役立ちます。

7. equalsメソッドとisEqualメソッドの違い

7. equalsメソッドとisEqualメソッドの違い
7. equalsメソッドとisEqualメソッドの違い

Javaの日時比較について調べていると、equalsメソッドだけではなくisEqualメソッドを見かけることがあります。どちらも日時が等しいかを調べるときに関係するメソッドですが、考え方には違いがあります。

equalsメソッドは、対象となるオブジェクトとの等価性を確認するためのメソッドです。一方、isEqualメソッドは日時の時間軸上で同じ日時を表しているかを確認するために利用されます。

LocalDateTime同士を単純に比較する初心者向けのプログラムでは、まずequalsメソッドの使い方を覚えておけばよいでしょう。ただし、Javaの日時を本格的に扱うようになると、LocalDateやZonedDateTimeなど、さまざまな日時関連クラスを利用するようになります。その段階で、目的に応じた比較メソッドを選ぶことが重要になります。

また、日時の前後関係を調べたい場合には、等しいかどうかを確認するequalsだけでは十分ではありません。指定した日時より前なのか後なのかを確認するためのメソッドも用意されています。

メソッド 主な用途 結果
equals 日時が等しいか確認する trueまたはfalse
isEqual 日時が同じか確認する trueまたはfalse
isBefore 指定した日時より前か確認する trueまたはfalse
isAfter 指定した日時より後か確認する trueまたはfalse

例えば、予約開始日時を過ぎているか確認したい場合にはisAfterやisBeforeが役立ちます。一方、登録されている日時と入力された日時が完全に同じか確認したい場合にはequalsが分かりやすい選択肢になります。

8. 秒やナノ秒が違う場合の注意点

8. 秒やナノ秒が違う場合の注意点
8. 秒やナノ秒が違う場合の注意点

LocalDateTimeをequalsメソッドで比較するときに特に注意したいのが、秒やナノ秒です。画面上では同じ日時に見えていても、内部に保持されている細かな時刻が異なっていれば、比較結果がfalseになることがあります。

例えば、片方が午前10時30分0秒で、もう片方が午前10時30分1秒なら、分までを見ると同じように感じますが、LocalDateTimeとしては異なる日時です。そのため、equalsメソッドの結果はfalseになります。


import java.time.LocalDateTime;

public class SecondsExample {
    public static void main(String[] args) {
        LocalDateTime first = LocalDateTime.of(2026, 11, 1, 10, 30, 0);
        LocalDateTime second = LocalDateTime.of(2026, 11, 1, 10, 30, 1);

        System.out.println(first.equals(second));
    }
}

false

このような違いは、現在日時を取得してデータベースへ保存した値と、別のタイミングで取得した現在日時を比較するときにも起こりやすくなります。人間から見るとほぼ同じ時刻でも、コンピュータでは細かな時間の違いを別の値として扱います。

もし分単位で同じかどうかを判定したいのであれば、比較する前に秒以下をそろえる方法があります。例えばwithSecondやwithNanoを利用して秒やナノ秒を同じ値にしてから比較する方法です。また、用途によっては日時を指定した単位へ切り捨てて比較する方法もあります。

Javaで日時比較が思った通りにならない場合は、表示されている年、月、日、時、分だけを見るのではなく、秒やナノ秒まで違っていないか確認してみましょう。特に現在日時やデータベースから取得した日時を比較するプログラムでは重要な確認ポイントになります。

9. LocalDateTimeのequalsメソッドを使うときの注意点

9. LocalDateTimeのequalsメソッドを使うときの注意点
9. LocalDateTimeのequalsメソッドを使うときの注意点

JavaのLocalDateTimeでequalsメソッドを使うときは、比較する値が何を表しているのかを確認することが大切です。単純なサンプルでは日時を直接指定するため分かりやすいですが、実際のWebアプリケーションではフォーム入力、データベース、外部システムなどから日時を取得する場合があります。

まず確認したいのは、LocalDateTimeにはタイムゾーンが含まれていないことです。例えば、日本の午前10時と海外の午前10時をLocalDateTimeとして作成しただけでは、それぞれがどの地域の午前10時なのかという情報を保持していません。

世界各地の時差を考慮した日時を扱う必要があるシステムでは、ZonedDateTimeやOffsetDateTimeなど、目的に合った日時クラスについても理解する必要があります。LocalDateTimeは、地域や時差を持たないローカルな日付と時刻を表すクラスとして考えると分かりやすいでしょう。

また、比較する変数がnullになる可能性がある場合にも注意が必要です。nullはオブジェクトが存在していない状態を表します。nullになっている変数から直接equalsメソッドを呼び出すと、実行時に例外が発生する原因になります。

さらに、日時の比較目的を明確にすることも重要です。完全に同じ日時か確認したいのであればequalsが利用できますが、同じ日だけを確認したい場合にはtoLocalDateを使います。前後関係を確認したい場合にはisBeforeやisAfterを使います。

日時比較で確認したいこと

日付と時刻の両方を比較するのか確認する

秒やナノ秒まで同じ必要があるのか確認する

日付だけならtoLocalDateを利用する

前後関係ならisBeforeやisAfterを検討する

タイムゾーンが必要なシステムか確認する

Javaの日時処理では、単に値を比較するだけではなく、何を同じと判断したいのかを決めることが重要です。予約日時が完全に一致していることを確認したい場合と、同じ日に予約されていることを確認したい場合では、必要な処理が異なります。

java.timeパッケージには、日時を扱うための便利なクラスやメソッドが多数用意されています。まずはLocalDateTimeで日時を作成する方法と、equalsメソッドで同じ日時か比較する基本を身につけ、その後に日付だけの比較、時刻だけの比較、日時の前後関係へ学習を広げていくと理解しやすくなります。

特にJava初心者の段階では、LocalDateTimeは日付と時刻を一緒に持つクラス、equalsは2つの日時が同じか調べるメソッド、と整理して覚えておくとよいでしょう。実際に複数の日時を作成し、時刻や日付を少しずつ変更しながら比較結果を確認すると、Javaの日時比較の仕組みをより具体的に理解できます。

まとめ

まとめ
まとめ

Javaで日付と時刻を扱うときに覚えておきたいのが、java.timeパッケージに用意されているLocalDateTimeクラスです。LocalDateTimeを使うと、年、月、日といった日付の情報だけでなく、時、分、秒、ナノ秒といった時刻の情報もまとめて1つのオブジェクトとして管理できます。予約日時、会議の開始日時、注文日時、受付日時、処理予定日時など、日付と時刻を一緒に扱いたいJavaプログラムで活用できます。

そして、2つのLocalDateTimeが同じ日時を表しているか確認するときに利用できるのがequalsメソッドです。比較した日時が同じであればtrue、異なっていればfalseが返されます。Javaで日時を比較する基本として、まずはLocalDateTimeとequalsメソッドの組み合わせを覚えておくとよいでしょう。

LocalDateTimeの重要なポイントは、日付だけではなく時刻まで含めて比較されることです。例えば、同じ日の午前10時と午後3時は日付だけを見ると同じですが、LocalDateTimeとしては異なる日時です。そのため、2つの値をequalsメソッドで比較するとfalseになります。Javaで日時比較をするときは、何を基準として同じと判断したいのかを最初に考えることが大切です。

LocalDateTimeとequalsメソッドの基本を確認

LocalDateTimeのオブジェクトは、ofメソッドを使って指定した日時から作成できます。次の例では、同じ日時を持つ2つのLocalDateTimeを作成して、equalsメソッドで比較しています。


import java.time.LocalDateTime;

public class LocalDateTimeEqualsExample {
    public static void main(String[] args) {
        LocalDateTime dateTime1 = LocalDateTime.of(2026, 10, 15, 10, 30);
        LocalDateTime dateTime2 = LocalDateTime.of(2026, 10, 15, 10, 30);

        boolean result = dateTime1.equals(dateTime2);

        System.out.println(result);
    }
}

true

この例では、dateTime1とdateTime2は別々に作成されていますが、表している日時は同じです。そのため、equalsメソッドによる比較結果はtrueになります。Javaのオブジェクトを学習していると、別々に作成したオブジェクトだから異なるものではないかと迷うことがありますが、equalsメソッドでは日時として等しいかどうかを確認できます。

反対に、年、月、日、時、分などの値が異なっていれば、比較結果はfalseになります。予約管理などでは、登録されている予約日時と利用者が指定した日時が一致しているかを判定する処理に応用できます。if文と組み合わせれば、日時が一致した場合と一致しなかった場合で処理を分けることもできます。

日付だけを比較する場合は比較する範囲を変える

Javaで日時を比較するときに注意したいのは、必ずしも日付と時刻のすべてを比較したいとは限らないことです。例えば、注文日時が午前9時と午後4時であっても、同じ日に注文された商品として処理したい場合があります。このような処理でLocalDateTimeをそのままequalsメソッドで比較すると、時刻が異なるためfalseになります。

日付だけが同じか確認したい場合は、toLocalDateメソッドを利用して日付部分を取り出してから比較します。反対に時刻だけを比較したい場合は、toLocalTimeメソッドを利用できます。Javaの日時比較では、比較する前に日付と時刻の両方が必要なのか、日付だけでよいのか、時刻だけでよいのかを整理すると、適切な処理を書きやすくなります。


import java.time.LocalDateTime;

public class LocalDateCompareExample {
    public static void main(String[] args) {
        LocalDateTime first = LocalDateTime.of(2026, 10, 20, 9, 0);
        LocalDateTime second = LocalDateTime.of(2026, 10, 20, 16, 30);

        boolean sameDate = first.toLocalDate().equals(second.toLocalDate());

        System.out.println(sameDate);
    }
}

true

このプログラムでは午前9時と午後4時30分という異なる時刻を指定しています。しかし、toLocalDateメソッドによって日付部分だけを取り出しているため、同じ日付であることを判定できます。実務では、売上を日単位で集計したり、同じ営業日のデータか確認したりするときにも、このように比較する範囲を意識することが重要です。

秒やナノ秒まで比較されることに注意する

LocalDateTimeのequalsメソッドを使うときは、画面上で見えている時刻だけで判断しないようにしましょう。例えば、画面では午前10時30分と表示していても、内部では片方が午前10時30分0秒、もう片方が午前10時30分1秒になっている可能性があります。この場合、分までの表示は同じに見えても、実際のLocalDateTimeは異なるため、equalsメソッドではfalseになります。

特にLocalDateTime.nowメソッドで現在日時を取得する場合や、データベースに保存された日時を比較する場合は、秒やナノ秒の違いに注意が必要です。人間にとってはほぼ同じ時刻に見えても、Javaでは保持されている値が異なれば同じ日時として扱われません。

分単位で同じかどうかだけを確認したいのであれば、比較する日時の秒やナノ秒をそろえてから比較する方法があります。どこまでの精度で日時を比較する必要があるのかは、システムの目的によって変わります。予約システムなら分単位で十分な場合がありますが、処理履歴やログでは秒以下の情報が必要になる場合もあります。

equalsメソッドを使う前に、日付だけを比較するのか、分まで比較するのか、秒やナノ秒まで含めて完全に同じ日時を比較するのかを確認しておくと、意図しない判定を防ぎやすくなります。

日時の前後を調べる場合は別のメソッドを使う

equalsメソッドは、2つの日時が等しいかどうかを確認するためのメソッドです。そのため、ある日時より前なのか後なのかを判定したい場合には、別のメソッドを使います。LocalDateTimeでは、指定した日時より前か確認するisBeforeメソッドと、指定した日時より後か確認するisAfterメソッドが利用できます。

例えば、予約の締切日時を過ぎているか確認する場合、単純に同じ日時かどうかだけを調べても十分ではありません。現在日時が締切日時より後なのかを調べる必要があります。このような場合にはisAfterメソッドが適しています。反対に、イベント開始日時より前かどうかを確認したい場合にはisBeforeメソッドを利用できます。


import java.time.LocalDateTime;

public class DateTimeCompareExample {
    public static void main(String[] args) {
        LocalDateTime start = LocalDateTime.of(2026, 10, 25, 10, 0);
        LocalDateTime check = LocalDateTime.of(2026, 10, 25, 9, 0);

        System.out.println(check.isBefore(start));
        System.out.println(check.isAfter(start));
    }
}

true
false

このように、Javaで日時を比較するときは、同じかどうかならequals、前かどうかならisBefore、後かどうかならisAfterというように、目的に応じてメソッドを使い分けます。単にメソッド名を覚えるだけではなく、どのような判定をしたいのかを考えて選択することが大切です。

LocalDateTimeにはタイムゾーンが含まれていない

LocalDateTimeを利用するときには、タイムゾーンを持たないことも覚えておきましょう。LocalDateTimeで午前10時という値を作成しても、それが日本の午前10時なのか、海外の午前10時なのかという地域の情報は含まれていません。

日本国内だけで利用する業務システムなどではLocalDateTimeが扱いやすい場面も多くあります。一方で、複数の国や地域で利用するサービスでは時差を考慮する必要があります。そのような場合は、ZonedDateTimeやOffsetDateTimeなど、タイムゾーンや時差を扱えるクラスについても検討します。

Javaの日時処理で大切なのは、すべての場面で同じクラスや同じ比較方法を使うことではありません。日付だけならLocalDate、時刻だけならLocalTime、日付と時刻ならLocalDateTimeというように、扱いたい情報に合わせてクラスを選択します。さらに、時差まで必要なら別の日時クラスを選ぶという考え方が重要です。

Javaの日時比較で覚えておきたいポイント

LocalDateTimeは日付と時刻をまとめて扱うクラスです。

LocalDateTimeはjava.timeパッケージに含まれています。

equalsメソッドを使うと、2つの日時が同じか確認できます。

同じ日時ならtrue、異なる日時ならfalseが返されます。

日付だけを比較したい場合はtoLocalDateメソッドを利用できます。

時刻だけを比較したい場合はtoLocalTimeメソッドを利用できます。

日時の前後関係はisBeforeやisAfterで確認できます。

秒やナノ秒が異なると、完全に同じ日時にはなりません。

LocalDateTime自体にはタイムゾーンの情報が含まれていません。

Java初心者がLocalDateTimeの日時比較を学ぶときは、最初からすべての日時関連メソッドを覚える必要はありません。まずはLocalDateTimeで日付と時刻を作成し、equalsメソッドで同じ日時か比較する流れを理解しましょう。その後、日付だけの比較、時刻だけの比較、日時の前後関係という順番で学習すると、それぞれのメソッドの役割を整理しやすくなります。

また、実際にプログラムを書くときは、何を同じと判断するのかを明確にすることが大切です。年、月、日が同じならよいのか、時と分まで同じ必要があるのか、秒やナノ秒まで完全に一致する必要があるのかによって、適切な比較方法は変わります。この判断ができるようになると、Javaの予約システム、勤怠管理、スケジュール管理、注文管理、日時検索などの処理にも応用しやすくなります。

java.timeパッケージには、LocalDateTime以外にも日時処理に役立つクラスが用意されています。Javaで日付と時刻を扱う基本として、まずはLocalDateTimeとequalsメソッドの関係を理解し、比較する対象や目的に合わせてLocalDate、LocalTime、isBefore、isAfterなどへ知識を広げていくとよいでしょう。

先生と生徒の振り返り会話

生徒

「LocalDateTimeは、日付だけを保存するものではなく、時刻も一緒に扱えるクラスなんですね。」

先生

「その通りです。年、月、日だけではなく、時、分、秒なども含めて日時を扱えます。予約日時や注文日時のように、日付と時刻の両方が必要な処理で便利です。」

生徒

「2つのLocalDateTimeが同じ日時か確認したいときは、equalsメソッドを使えばいいんですね。」

先生

「はい。同じ日時ならtrue、異なる日時ならfalseが返されます。ただし、日付だけではなく時刻も含めて比較されることを忘れないようにしましょう。」

生徒

「同じ日の午前9時と午後3時をequalsで比較したら、日付は同じでもfalseになるということですね。」

先生

「そうです。同じ日かどうかだけを確認したいなら、toLocalDateメソッドで日付部分を取り出してから比較します。何を比較したいのかによって方法を変えることが大切です。」

生徒

「画面では同じ午前10時30分に見えているのに、equalsでfalseになる場合もありますか?」

先生

「あります。秒やナノ秒が異なっている可能性があります。日時の比較結果がおかしいと感じたときは、画面に表示している部分だけではなく、内部でどこまで時刻を保持しているのかも確認してみましょう。」

生徒

「日時が同じかではなく、予約日時より前か後かを確認したいときもequalsですか?」

先生

「その場合は別のメソッドを使います。前かどうかを確認するならisBefore、後かどうかを確認するならisAfterが利用できます。equalsは同じ日時かどうかを確認するときに使う、と整理すると分かりやすいですよ。」

生徒

「まず比較したい内容を決めてから、equalsやisBeforeなどを選べばいいんですね。」

先生

「その考え方が大切です。完全に同じ日時なのか、同じ日なのか、前後関係を調べたいのかを整理すれば、Javaの日時比較で使うメソッドを選びやすくなります。まずはLocalDateTimeとequalsの基本からしっかり身につけていきましょう。」

生成AIを基礎から学びたい方へ

ChatGPTなどの生成AIをこれから学びたい方に向けて、AIスキルアカデミーの口コミ・評判、料金、無料セミナーの内容を詳しくまとめています。

AIスキルアカデミーの口コミ・評判を詳しく見る
カテゴリの一覧へ
新着記事
New1
Spring
Spring Bootの@RequestParamの使い方を解説!初心者でもわかるGETリクエストのパラメータ取得
更新記事
New2
Java
JavaのLocalDateTime.formatメソッドを完全解説!初心者でもわかる日時フォーマット入門
更新記事
New3
Java
Javaのラムダ式とStreamのfilterを徹底解説!初心者でもわかる条件による絞り込み処理
更新記事
New4
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
更新記事
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaサーブレットのdoPostメソッドとは?初心者向けにやさしく解説!
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpServletRequestWrapperとgetSessionメソッドの使い方を徹底解説!初心者向けServletのセッション管理入門
No.3
Java&Spring記事人気No3
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Servlet
JavaのHttpServletResponseクラスを初心者向けに徹底解説!
No.5
Java&Spring記事人気No5
Java
JavaのStringクラスとlengthメソッドを完全解説!初心者でも理解できる文字列の長さ取得の使い方
No.6
Java&Spring記事人気No6
Servlet
JavaのHttpSessionAttributeListenerとattributeRemovedメソッドの使い方を徹底解説!初心者でもわかるセッション属性の削除と監視
No.7
Java&Spring記事人気No7
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.8
Java&Spring記事人気No8
Servlet
JavaのHttpSessionインターフェースとgetSessionContextメソッドを徹底解説!初心者でもわかるセッション管理の基本