カテゴリ: Java 更新日: 2026/07/08

JavaのLocalDateTime.queryメソッドを完全解説!初心者でもわかる柔軟な時間操作

LocalDateTimeのqueryメソッド
LocalDateTimeのqueryメソッド

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

生徒

「Javaで日付や時間から特定の情報だけを取り出す方法ってありますか?」

先生

「はい、Javaのjava.timeパッケージに含まれるLocalDateTimeクラスにはqueryメソッドがあり、柔軟に情報を取り出すことができます。」

生徒

「queryメソッドってどんな使い方をするんですか?」

先生

「それでは、基本から応用まで一緒に見ていきましょう!」

1. java.timeパッケージとLocalDateTimeとは

1. java.timeパッケージとLocalDateTimeとは
1. java.timeパッケージとLocalDateTimeとは

Java8以降で導入されたjava.timeパッケージは、従来のDateCalendarよりも扱いやすく、安全な日付と時間の操作を可能にしました。その中でもLocalDateTimeクラスは、年月日と時刻を一緒に管理できる便利なクラスです。システム開発やWebアプリケーションにおいて、日時を取り扱う場面では必ずと言っていいほど登場します。

2. queryメソッドとは

2. queryメソッドとは
2. queryメソッドとは

queryメソッドは、TemporalQueryインターフェースを利用して日時情報から特定の値を取り出すためのメソッドです。例えば「曜日だけを取り出す」「オフセット情報を抽出する」といった処理を柔軟に実装できます。標準のTemporalQueriesユーティリティクラスと組み合わせて使うことで、より簡単に目的の情報を取得できます。

3. 基本的な使い方

3. 基本的な使い方
3. 基本的な使い方

まずは簡単な例として、queryメソッドを使って時刻が何時かを取り出してみましょう。


import java.time.LocalDateTime;
import java.time.temporal.TemporalQueries;

public class QueryExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        Integer hour = now.query(TemporalQueries.localTime()).getHour();
        System.out.println("現在の時刻の時: " + hour);
    }
}

現在の時刻の時: 14

4. TemporalQueryを使った応用

4. TemporalQueryを使った応用
4. TemporalQueryを使った応用

queryメソッドは、開発者が独自のTemporalQueryを実装して利用することも可能です。これにより業務に特化した情報抽出もできます。


import java.time.LocalDateTime;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalQuery;

public class CustomQueryExample {
    public static void main(String[] args) {
        TemporalQuery<Boolean> isMorning = (TemporalAccessor temporal) -> {
            int hour = LocalDateTime.from(temporal).getHour();
            return hour >= 6 && hour < 12;
        };

        LocalDateTime now = LocalDateTime.now();
        boolean result = now.query(isMorning);
        System.out.println("今は午前中ですか?: " + result);
    }
}

今は午前中ですか?: true

5. TemporalQueriesの便利な定義済みクエリ

5. TemporalQueriesの便利な定義済みクエリ
5. TemporalQueriesの便利な定義済みクエリ

JavaのTemporalQueriesクラスには便利な定義済みクエリが用意されています。例えばzone()でタイムゾーン、precision()で精度を取得することができます。


import java.time.LocalDateTime;
import java.time.temporal.TemporalQueries;

public class TemporalQueriesExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println("タイムゾーン: " + now.query(TemporalQueries.zone()));
        System.out.println("精度: " + now.query(TemporalQueries.precision()));
    }
}

6. queryメソッドを使うメリット

6. queryメソッドを使うメリット
6. queryメソッドを使うメリット

queryメソッドを活用するメリットは次の通りです。

  • 柔軟に日時情報を抽出できる
  • 定義済みのTemporalQueriesで便利に利用可能
  • 独自クエリを実装することで業務要件に対応可能
  • コードの可読性や再利用性を向上させられる

7. 実用的なシーン

7. 実用的なシーン
7. 実用的なシーン

システム開発において、queryメソッドは以下のような場面で活躍します。

  • 業務ロジックで「午前中の処理」や「営業時間内かどうか」を判定する
  • スケジュール管理アプリで曜日や時間帯を抽出する
  • 金融システムで取引可能時間帯かどうかを判別する

まとめ

まとめ
まとめ

LocalDateTime.queryの理解を深めよう

今回はJavaのjava.timeパッケージに含まれるLocalDateTimeクラスのqueryメソッドについて詳しく解説してきました。queryメソッドは日時情報から必要な情報だけを柔軟に取り出すことができる非常に便利な機能であり、Javaで日付や時間を扱う際に理解しておくべき重要なポイントの一つです。特に初心者の方にとっては、単純に年月日や時刻を取得するだけでなく、状況に応じて必要な情報を取り出すという考え方を身につけることが大切です。

LocalDateTimeは年月日と時刻を一つのオブジェクトとして管理できるため、業務システムやWebアプリケーション開発において頻繁に利用されます。その中でqueryメソッドを活用することで、曜日や時間帯、タイムゾーン情報などを柔軟に取得できるようになります。これにより、単純な日時処理だけでなく、より実践的なロジックを実装することが可能になります。

また、TemporalQueryインターフェースを使うことで独自のロジックを定義できる点も大きな特徴です。例えば午前か午後かを判定する処理や、業務時間内かどうかを判断する処理など、アプリケーションの要件に応じたカスタマイズが可能になります。このようにqueryメソッドは単なる値の取得だけでなく、ビジネスロジックの一部として活用できる柔軟性を持っています。

基本操作の復習と応用例

queryメソッドの基本は、TemporalQueriesなどの定義済みクエリを利用することです。これによりタイムゾーンや精度といった情報を簡単に取得することができます。さらに応用として、独自のTemporalQueryを作成することで、特定の条件を満たすかどうかを判定する処理も実現できます。


import java.time.LocalDateTime;
import java.time.temporal.TemporalQuery;
import java.time.temporal.TemporalAccessor;

public class QueryReviewExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        TemporalQuery<Boolean> isEvening = (TemporalAccessor temporal) -> {
            int hour = LocalDateTime.from(temporal).getHour();
            return hour >= 18;
        };

        boolean result = now.query(isEvening);
        System.out.println("現在は夕方以降ですか: " + result);
    }
}

現在は夕方以降ですか: false

このように時間帯を判定するロジックを簡単に実装できるため、実務でも非常に役立ちます。

実務で役立つ活用シーン

queryメソッドは実際の開発現場でも多くの場面で活用されます。例えば予約システムでは営業時間内かどうかの判定、金融システムでは取引可能時間の確認、ログ分析では特定の時間帯のデータ抽出などに利用されます。こうした処理をシンプルに記述できることは、コードの可読性や保守性の向上にもつながります。

また、複雑な日時計算を行う際にもqueryメソッドを活用することで、処理を分割しやすくなり、コードの見通しが良くなります。特にチーム開発では、読みやすく理解しやすいコードを書くことが重要になるため、このような機能を適切に使いこなすことが求められます。

初心者が意識するべきポイント

初心者の方はまずLocalDateTimeの基本的な使い方を理解し、その上でqueryメソッドの役割を覚えることが大切です。単純なgetHourやgetDayOfWeekといったメソッドとの違いを意識しながら、どのような場面でqueryを使うと便利なのかを考えることで理解が深まります。

また、最初は難しく感じるかもしれませんが、サンプルコードを実際に動かしながら試すことで、処理の流れが自然と理解できるようになります。特にTemporalQueryを自分で作成してみることで、より実践的なスキルを身につけることができます。

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

生徒

「queryメソッドでいろいろな情報が取り出せることがわかりました」

先生

「日時から必要な情報だけを柔軟に取得できる点が大きな特徴です」

生徒

「自分で条件を作れるのが便利ですね」

先生

「業務に合わせたロジックを簡単に実装できるのが強みです」

生徒

「まずは簡単な条件から試してみます」

先生

「実際に動かして理解することが上達への近道です一つずつ確実に覚えていきましょう」

カテゴリの一覧へ
新着記事
New1
Thymeleaf
Thymeleafの#mapsユーティリティとは?初心者向けマップ操作ガイド
更新記事
New2
Thymeleaf
Thymeleafの#arraysユーティリティとは?初心者向け配列操作ガイド
更新記事
New3
Thymeleaf
Thymeleafの#strings.sizeメソッドとは?初心者向け文字列の長さ取得ガイド
更新記事
New4
Thymeleaf
Thymeleafの#datesユーティリティとは?初心者向け日付操作ガイド
更新記事
人気記事
No.1
Java&Spring記事人気No1
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.2
Java&Spring記事人気No2
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.3
Java&Spring記事人気No3
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.4
Java&Spring記事人気No4
Java
JavaのDateクラスの使い方を完全ガイド!初心者でもわかる日付操作
No.5
Java&Spring記事人気No5
Java
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.6
Java&Spring記事人気No6
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.7
Java&Spring記事人気No7
Thymeleaf
Thymeleafのth:hrefの使い方を全解説。初心者でも完璧に理解できるガイド
No.8
Java&Spring記事人気No8
Thymeleaf
Thymeleafのth:valueの使い方を解説!フォーム入力値を保持したり動的に表示する方法