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

JavaのLocalDateTime.getLongメソッドを完全ガイド!初心者でもわかる時刻の詳細取得

LocalDateTimeのgetLongメソッド
LocalDateTimeのgetLongメソッド

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

生徒

「先生、Javaで現在の時間をもっと細かく数字で取り出す方法ってありますか?」

先生

「あるよ。JavaのLocalDateTimeクラスにあるgetLongメソッドを使えば、特定の時間要素を数値として取り出せるんだ。」

生徒

「例えば時間や分を、数値の形で扱えるってことですか?」

先生

「そうだよ。実際の使い方を一緒に見ていこう!」

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

「1. java.timeパッケージとは」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

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

java.timeパッケージはJava8から導入された新しい日付と時刻のAPIです。従来のDateCalendarの使いにくさを解消し、より直感的で分かりやすいコードが書けるようになっています。業務アプリケーションやWebシステムなどでも標準的に利用されています。

2. LocalDateTimeクラスの役割

2. LocalDateTimeクラスの役割
2. LocalDateTimeクラスの役割

LocalDateTimeは日付と時間を同時に扱えるクラスです。年月日だけでなく、時分秒まで管理できるため、スケジュール管理やログ記録、システム処理の分岐に非常に役立ちます。例えば「二〇二五年九月二三日一四時三〇分」といった情報を一つのオブジェクトで保持できます。

3. getLongメソッドの概要

3. getLongメソッドの概要
3. getLongメソッドの概要

getLongメソッドは、LocalDateTimeの内部から指定したフィールドをlong型の数値として取得するためのものです。例えば「時間の部分」や「曜日の値」を数値で取り出すときに使えます。取得する対象はChronoFieldという定数で指定します。

4. getLongの基本的な使い方

「4. getLongの基本的な使い方」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. getLongの基本的な使い方
4. getLongの基本的な使い方

例えば現在の時間の「時」の部分を数値として取り出す場合、次のように書きます。


import java.time.LocalDateTime;
import java.time.temporal.ChronoField;

public class GetLongExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        long hour = now.getLong(ChronoField.HOUR_OF_DAY);
        System.out.println("現在の時刻の時は: " + hour);
    }
}

現在の時刻の時は: 15

5. getLongで指定できるChronoField

5. getLongで指定できるChronoField
5. getLongで指定できるChronoField

ChronoFieldは時間や日付を表すための列挙型です。代表的なものには以下があります。

  • ChronoField.YEAR … 年を取得
  • ChronoField.MONTH_OF_YEAR … 月を取得
  • ChronoField.DAY_OF_MONTH … 日を取得
  • ChronoField.HOUR_OF_DAY … 時を取得
  • ChronoField.MINUTE_OF_HOUR … 分を取得
  • ChronoField.SECOND_OF_MINUTE … 秒を取得

これらを使い分けることで、必要な単位を数値として自由に扱うことができます。

6. getHourとの違い

6. getHourとの違い
6. getHourとの違い

getHourは時刻の「時」だけを返す専用メソッドですが、getLongは柔軟にさまざまなフィールドを取得できます。つまり「特化型」か「汎用型」かの違いです。複数の情報を一貫した方法で取得したい場合はgetLongを選ぶと便利です。

7. 実用的な利用例

「7. 実用的な利用例」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. 実用的な利用例
7. 実用的な利用例

例えば勤怠管理システムで「出勤時間が九時以前かどうか」を判定する場合、getLongを使って「時」の値を取り出して条件分岐に利用できます。


import java.time.LocalDateTime;
import java.time.temporal.ChronoField;

public class WorkCheckExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        long hour = now.getLong(ChronoField.HOUR_OF_DAY);

        if (hour < 9) {
            System.out.println("早めの出勤です");
        } else {
            System.out.println("通常の出勤時間です");
        }
    }
}

通常の出勤時間です

8. getLongを使う際の注意点

8. getLongを使う際の注意点
8. getLongを使う際の注意点

getLongは指定したChronoFieldLocalDateTimeに対応していない場合、例外を投げます。そのため利用する前に対象のフィールドが適切かどうかを確認することが大切です。またタイムゾーンに依存せずローカル時間を扱うので、グローバルシステムではUTCなどと組み合わせることを検討しましょう。

9. 応用的な利用シーン

9. 応用的な利用シーン
9. 応用的な利用シーン

ログ解析で「特定の月のアクセス数を集計する」場合や、予約システムで「曜日を数値として管理する」といった場面でgetLongは役立ちます。さらにスケジュール機能では「週番号」を取り出して管理することも可能です。こうした使い方を理解しておくと、より実践的なJavaプログラミングに活かせます。

まとめ

「まとめ」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

まとめ
まとめ

LocalDateTime.getLongメソッドの重要ポイント

今回はJavaの日時APIであるLocalDateTimeクラスのgetLongメソッドについて学習しました。 LocalDateTimeは日付と時刻を一つのオブジェクトで管理できる非常に便利なクラスであり、 業務システムやWebアプリケーション開発、バッチ処理、ログ管理システム、予約管理システム、 勤怠管理システムなど幅広い分野で利用されています。

特にgetLongメソッドは、日時情報の中から年、月、日、時、分、秒などの特定の値を 数値として取得したい場合に役立ちます。 Javaの日時処理では日時をそのまま表示するだけではなく、 取得した値を利用して条件分岐を行ったり、 データ集計を行ったり、 特定の時間帯のみ処理を実行したりすることが少なくありません。

そのような場面においてgetLongメソッドを理解しておくことで、 より柔軟で保守性の高いJavaプログラムを作成できるようになります。 Java初心者の方はもちろん、 Spring Bootを利用したWebシステム開発を行う方にとっても重要な知識です。

ChronoFieldとの組み合わせがポイント

getLongメソッドの最大の特徴は、 ChronoFieldを利用して取得対象を自由に指定できる点です。 例えば年を取得したい場合はYEAR、 月を取得したい場合はMONTH_OF_YEAR、 時を取得したい場合はHOUR_OF_DAYを指定します。


import java.time.LocalDateTime;
import java.time.temporal.ChronoField;

public class DateInfoExample {

    public static void main(String[] args) {

        LocalDateTime dateTime =
                LocalDateTime.of(2025, 9, 23, 14, 30, 45);

        System.out.println(
                dateTime.getLong(ChronoField.YEAR));

        System.out.println(
                dateTime.getLong(ChronoField.MONTH_OF_YEAR));

        System.out.println(
                dateTime.getLong(ChronoField.DAY_OF_MONTH));

        System.out.println(
                dateTime.getLong(ChronoField.HOUR_OF_DAY));
    }
}

2025
9
23
14

このように取得した値はlong型で返されるため、 数値比較や計算処理にそのまま利用できます。 そのためJavaの条件分岐や繰り返し処理との相性も非常に良いです。

実務でよく利用される活用例

実務では現在時刻から時間を取得し、 営業時間内かどうかを判定するケースがあります。 またバッチ処理では深夜のみ実行したい処理や、 月末だけ実行したい処理なども存在します。


import java.time.LocalDateTime;
import java.time.temporal.ChronoField;

public class BusinessHourCheck {

    public static void main(String[] args) {

        LocalDateTime now = LocalDateTime.now();

        long hour =
                now.getLong(ChronoField.HOUR_OF_DAY);

        if (hour >= 9 && hour < 18) {
            System.out.println("営業時間です");
        } else {
            System.out.println("営業時間外です");
        }
    }
}

営業時間です

このような処理は企業システムでは非常によく登場します。 特に予約システムやECサイト、 在庫管理システム、 社内管理システムなどでは日時判定が頻繁に利用されます。

getHourよりgetLongを覚えるメリット

JavaにはgetHourgetMonthValueなど、 特定の値を取得する専用メソッドも存在します。 しかしgetLongを覚えておくと、 統一された書き方でさまざまな日時情報を取得できます。

例えば時だけでなく、 年、 月、 日、 分、 秒、 曜日なども同じ形式で取得できます。 そのためコードの統一性が高まり、 可読性の向上にもつながります。

エラーを防ぐための注意点

getLongメソッドは便利ですが、 指定したChronoFieldLocalDateTimeに対応していない場合は例外が発生します。

そのため実務では利用するフィールドが適切かどうかを確認しながら実装することが大切です。 また日時処理はシステム障害の原因になりやすいため、 テストを十分に実施することも重要です。

Java学習者が理解しておきたいポイント

Java初心者の方は、 まず日時オブジェクトを作成する方法を覚え、 その後で年や月や日時情報を取得する方法を学習すると理解しやすくなります。

またSpring BootやJakarta Persistenceを利用した開発では、 データベースに保存された日時データを取得し、 その値をもとに画面表示や検索条件の判定を行うこともあります。 その際にLocalDateTimegetLongの知識が役立ちます。

Javaの日付処理、 Javaの時刻処理、 LocalDateTimeの使い方、 ChronoFieldの使い方、 getLongメソッドの活用方法を理解しておくことで、 実践的なプログラム開発に対応できるようになります。 特に業務システム開発では日時情報を扱う機会が非常に多いため、 しっかり身につけておきましょう。

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

生徒

「先生、今回の学習で一番大事なことは何ですか。」

先生

「LocalDateTimeから必要な日時情報を取り出すために getLongメソッドを利用できることだね。」

生徒

「年や月や日や時間を数値として取得できるんですよね。」

先生

「その通りだよ。 取得した数値を使って条件分岐や集計処理ができるようになる。」

生徒

「勤怠管理システムや予約システムでも使えそうですね。」

先生

「実際によく使われているよ。 営業時間の判定やログ分析やバッチ処理など、 日時情報を扱う場面は非常に多い。」

生徒

「getHourとの違いも理解できました。 getLongはさまざまな情報を統一した方法で取得できるんですね。」

先生

「そうだね。 ChronoFieldを変更するだけで取得対象を切り替えられるのが大きな特徴なんだ。」

生徒

「Javaの日時処理に対する理解が深まりました。」

先生

「素晴らしいね。 LocalDateTimeとChronoFieldとgetLongを理解しておけば、 Java開発やSpring Boot開発でも役立つ場面がたくさんあるよ。 今後は実際にプログラムを書きながら慣れていこう。」

Javaの基礎を最初から体系的に学びたい人には、 初心者向けで定評のある定番入門書がこちらです。

スッキリわかるJava入門 第5版をAmazonで見る

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
Spring の@RequestParamの使い方!テキストボックス、ラジオボタン、チェックボックス、セレクトボックスの値を受け取る。
更新記事
New2
JSP
EL式の基本構文まとめ!${}で使う書き方のルールを解説
更新記事
New3
Java
JavaのBigIntegerとisProbablePrimeメソッドを完全解説!初心者でもわかる素数判定
更新記事
New4
JSP
JSPで発生する主なエラーとは?初心者向けに原因と対処法をやさしく解説
新規投稿
人気記事
No.1
Java&Spring記事人気No1
JSP
JSPのおすすめ学習・用語まとめ【2026年最新版】初心者が知っておきたい基本をやさしく解説
No.2
Java&Spring記事人気No2
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.3
Java&Spring記事人気No3
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.4
Java&Spring記事人気No4
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.5
Java&Spring記事人気No5
Spring
Javaの@PreAuthorizeアノテーションを完全ガイド!初心者でもわかるメソッドセキュリティ設定
No.6
Java&Spring記事人気No6
Spring
Springの@Queryアノテーションを徹底解説!初心者でもわかるSpring Bootのカスタムクエリ
No.7
Java&Spring記事人気No7
Java
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.8
Java&Spring記事人気No8
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう