カテゴリ: Java 更新日: 2025/12/23

JavaのLocalDateTime.ofメソッド完全ガイド!初心者でもわかる日時指定の方法

LocalDateTimeのofメソッド
LocalDateTimeのofメソッド

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

生徒

「先生、Javaで自分が指定した日時を作ることはできますか?」

先生

「もちろんできますよ。java.timeパッケージのLocalDateTimeクラスにはofメソッドが用意されていて、年や月や日、時間を自由に指定して日時を作ることができます。」

生徒

「へえ、便利そうですね!誕生日やイベントの日付もプログラムで扱えるんですね。」

先生

「その通りです。では、基本から一緒に見ていきましょう。」

1. java.timeパッケージの役割|Javaで日付と時間を扱う基本

1. java.timeパッケージの役割|Javaで日付と時間を扱う基本
1. java.timeパッケージの役割|Javaで日付と時間を扱う基本

java.timeパッケージは、Java8以降で導入された 日付と時間を安全かつ分かりやすく扱うための新しいAPIです。 それ以前に使われていた DateCalendar は、 書き方が複雑でミスが起こりやすく、初心者にとっては理解しづらい点がありました。 こうした問題を解消するために登場したのが java.time です。

このパッケージでは、「日付」「時間」「日付と時間」を役割ごとに 明確に分けて扱えるよう設計されています。 そのため、プログラムの意図がコードから読み取りやすくなり、 後から見返したときにも理解しやすいのが大きな特徴です。

代表的なクラスには、日付だけを扱う LocalDate、 時間だけを扱う LocalTime、 そして日付と時間をまとめて扱う LocalDateTime があります。 今回の記事では、この中でも実務で特に使用頻度の高い LocalDateTime を中心に解説していきます。


import java.time.LocalDate;

public class DateSample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("今日の日付: " + today);
    }
}

このように java.time パッケージを使うと、 「今日の日付を取得する」「指定した日付を作る」といった処理を 直感的に書くことができます。 まずは、日付と時間を扱う基本として java.time パッケージの役割をしっかり押さえておきましょう。

2. LocalDateTimeクラスとは|日付と時間をまとめて扱う仕組み

2. LocalDateTimeクラスとは|日付と時間をまとめて扱う仕組み
2. LocalDateTimeクラスとは|日付と時間をまとめて扱う仕組み

LocalDateTimeは、年月日と時分秒をひとつのオブジェクトとして まとめて扱うことができるクラスです。 「日付だけ」「時間だけ」では足りず、 具体的な日時を正確に表現したい場面で使われます。 たとえば「2025年1月1日10時30分」といった、 人が普段使う感覚に近い日時をそのままプログラムで表現できます。

このクラスの大きな特徴は、タイムゾーンを持たない点です。 そのため、サーバー内部の処理や、 単純な日時計算、画面表示用のデータとして扱うのに向いています。 ログの記録、予約システム、ファイルの作成日時管理など、 実務でも非常に登場回数の多いクラスです。


import java.time.LocalDateTime;

public class LocalDateTimeSample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println("現在の日時: " + now);
    }
}

上の例では、LocalDateTime.now()を使って 現在の日時を取得しています。 このように LocalDateTime は 「今の日時を使いたい」「指定した日時を保持したい」 といった基本的な要件をシンプルに満たしてくれるクラスです。 次の章では、この LocalDateTime を 自分で指定した日時で作成する方法を見ていきます。

3. ofメソッドの概要|指定した日時を生成するLocalDateTime.of

3. ofメソッドの概要|指定した日時を生成するLocalDateTime.of
3. ofメソッドの概要|指定した日時を生成するLocalDateTime.of

ofメソッドは、LocalDateTimeクラスが持つ 静的メソッドのひとつで、 「この日時を使いたい」とあらかじめ決まっている場合に その日時をそのままオブジェクトとして生成するために使われます。 現在時刻を取得する now() とは役割が異なり、 自分の意思で日時を指定できる点が大きな特徴です。

たとえば、誕生日、イベント開始時刻、締切日時など、 あらかじめ決まっている日時を扱う場面では ofメソッドがとても便利です。 年、月、日、時間、分、秒といった値を 人が読む順番に近い形で指定できるため、 プログラムに慣れていない人でも理解しやすくなっています。


import java.time.LocalDateTime;

public class OfSimpleSample {
    public static void main(String[] args) {
        LocalDateTime meetingTime =
                LocalDateTime.of(2025, 4, 1, 9, 0);

        System.out.println("会議開始日時: " + meetingTime);
    }
}

この例では、「2025年4月1日 午前9時」という 会議の開始日時を of メソッドで作成しています。 このように、日時を数値で明確に指定できるため、 プログラムの中で「いつの日時なのか」が一目で分かります。 ofメソッドは、 日時を扱う処理の土台となる非常に重要な存在です。

4. ofメソッドの基本的な使い方|日時を指定してLocalDateTimeを作成

4. ofメソッドの基本的な使い方|日時を指定してLocalDateTimeを作成
4. ofメソッドの基本的な使い方|日時を指定してLocalDateTimeを作成

実際に、ofメソッドを使って日時を生成する例を見てみましょう。


import java.time.LocalDateTime;

public class OfExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2025, 9, 23, 15, 45, 30);

        System.out.println("指定した日時: " + dateTime);
    }
}

指定した日時: 2025-09-23T15:45:30

このように、年月日と時分秒を渡すだけで指定の日時を作ることができます。

5. 引数の詳細|LocalDateTime.ofメソッドの指定方法と注意点

5. 引数の詳細|LocalDateTime.ofメソッドの指定方法と注意点
5. 引数の詳細|LocalDateTime.ofメソッドの指定方法と注意点

LocalDateTime.ofには複数のオーバーロードが存在します。主に以下の2種類です。

  • of(int year, int month, int dayOfMonth, int hour, int minute)
  • of(int year, int month, int dayOfMonth, int hour, int minute, int second)

月は1から12で指定し、日付はその月の日数に合わせます。例えば2月は28日または29日、4月は30日です。もし存在しない日付を指定するとDateTimeExceptionが発生するため注意が必要です。

6. 便利な活用例|LocalDateTime.ofの実務での使いどころ

6. 便利な活用例|LocalDateTime.ofの実務での使いどころ
6. 便利な活用例|LocalDateTime.ofの実務での使いどころ

実際の開発では以下のような場面でofメソッドを活用します。

  • ユーザーが入力した日付と時間をもとに予約日時を作成する
  • 毎年決まった記念日の日時を表現する
  • 特定のイベント開始日時をプログラムに埋め込む
  • スケジュール管理アプリで日付オブジェクトを作成する

7. DateTimeFormatterとの組み合わせ|日時表示のフォーマット方法

7. DateTimeFormatterとの組み合わせ|日時表示のフォーマット方法
7. DateTimeFormatterとの組み合わせ|日時表示のフォーマット方法

ofで作った日時を見やすい形式で表示したい場合、DateTimeFormatterを組み合わせます。


import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class OfFormatExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2025, 12, 31, 23, 59, 59);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒");

        String formatted = dateTime.format(formatter);
        System.out.println("フォーマット後: " + formatted);
    }
}

フォーマット後: 2025年12月31日 23時59分59秒

8. ofメソッドと他のクラスとの違い|LocalDate・LocalTimeとの比較

8. ofメソッドと他のクラスとの違い|LocalDate・LocalTimeとの比較
8. ofメソッドと他のクラスとの違い|LocalDate・LocalTimeとの比較

LocalDateTime.ofは日付と時刻を同時に指定しますが、もし日付だけを指定したいならLocalDate.of、時刻だけを指定したいならLocalTime.ofを利用できます。

さらにタイムゾーンを考慮する場合はZonedDateTime.ofを使うと、地域ごとの正しい日時を生成できます。

9. 応用練習アイデア|LocalDateTime.ofで理解を深める

9. 応用練習アイデア|LocalDateTime.ofで理解を深める
9. 応用練習アイデア|LocalDateTime.ofで理解を深める

理解を深めるために、以下のような練習問題に挑戦してみると良いでしょう。

  • 自分の誕生日の日時をプログラムで作成して表示する
  • 来週の同じ曜日の午前9時を計算して表示する
  • イベント開始日時と終了日時を作成して、差分を計算する
  • 毎月1日の午前0時を生成してリストに保存する

まとめ

まとめ
まとめ

LocalDateTime.ofメソッドで「指定した日時」を正しく扱えるようになろう

この記事では、Javaの LocalDateTime.of メソッドを中心に、 プログラムで日時を自由に指定して扱う方法について学んできました。 Javaで日付や時間を扱う場面は非常に多く、予約システムやスケジュール管理、 ログ出力、イベント管理など、ほとんどの業務アプリケーションで登場します。 その中でも LocalDateTime は、年月日と時分秒をまとめて扱えるため、 実務でも頻繁に利用される重要なクラスです。

特に of メソッドは、「現在時刻」ではなく 「自分で決めた日時」を作りたいときに欠かせません。 年、月、日、時、分、秒を順番に指定するだけで、 人がイメージしやすい日時をそのままコードに落とし込める点が大きな特徴です。 プログラミング初心者の方でも、カレンダーを見る感覚で理解しやすいでしょう。

java.timeパッケージを使うメリットを振り返る

Java8以降で導入された java.time パッケージは、 それまで使われていた DateCalendar と比べて、 直感的でミスが起こりにくい設計になっています。 月の指定が一から始まる、内部状態が分かりにくい、といった 以前の悩みを解消し、初心者でも安心して使えるAPIになりました。

LocalDateTime.of を使うことで、 存在しない日付を指定した場合には例外が発生し、 プログラムの早い段階でミスに気づける点も大きな利点です。 日付と時間を正しく扱うことは、システムの信頼性を高めるうえで 非常に重要なポイントだと言えます。

よくある実務シーンを想定したサンプル


import java.time.LocalDateTime;

public class ReservationSample {
    public static void main(String[] args) {
        // 予約開始日時を指定
        LocalDateTime start = LocalDateTime.of(2025, 5, 10, 10, 0, 0);

        // 予約終了日時を指定
        LocalDateTime end = LocalDateTime.of(2025, 5, 10, 11, 30, 0);

        System.out.println("開始日時: " + start);
        System.out.println("終了日時: " + end);
    }
}

このように of メソッドを使えば、 イベントや予約の開始日時と終了日時を明確にコードで表現できます。 文字列で日時を管理するよりも安全で、 後から計算や比較を行う際にも扱いやすくなります。

DateTimeFormatterと組み合わせた表示の重要性

プログラム内部では LocalDateTime を使い、 画面表示や帳票出力では DateTimeFormatter を使って 人に読みやすい形式へ変換する、という役割分担を意識することも大切です。 これにより、内部処理と表示処理が整理され、 コード全体の見通しが良くなります。

日付と時間の扱いに慣れてくると、 フォーマットの変更や表示ルールの調整も簡単に行えるようになります。 LocalDateTime.of は、その土台となる基本的なメソッドです。

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

生徒

「LocalDateTime.ofを使えば、カレンダーで考えた日時を そのままコードに書けるのが分かりました。」

先生

「そうですね。日時を文字列ではなく、 きちんとしたオブジェクトとして扱えるのがポイントです。」

生徒

「存在しない日付を指定するとエラーになるのも、 安全でいい仕組みだと思いました。」

先生

「その気づきはとても大切です。 日付や時間はバグの原因になりやすいので、 java.timeを正しく使えるようになると実務で強みになりますよ。」

生徒

「まずは誕生日やイベントの日付を LocalDateTime.ofで作る練習をしてみます!」

先生

「ぜひやってみてください。 今日学んだ内容は、Javaの日付処理の基礎として これから何度も役に立ちます。」

カテゴリの一覧へ
新着記事
Springの@Transactional徹底解説!トランザクションの伝播・分離レベル・タイムアウトの基本
JavaのHashMapクラスgetメソッドの使い方を完全ガイド!初心者でもわかるjava.util入門
Thymeleafのth:fragmentを使ったテンプレートの再利用方法を完全ガイド!初心者でもわかる使い方
Javaの@PathVariableアノテーションの使い方を徹底解説!初心者でもわかるパスパラメータの基本と応用
人気記事
No.1
Java&Spring記事人気No1
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.2
Java&Spring記事人気No2
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.3
Java&Spring記事人気No3
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.4
Java&Spring記事人気No4
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法