カテゴリ: Javaの例外処理 更新日: 2025/12/05

Javaの現在の日付と時刻を取得する方法を完全解説!初心者向けLocalDate・LocalTime・LocalDateTime入門

359
Java の現在の日付と時刻を取得する方法(LocalDate, LocalTime, LocalDateTime)

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

生徒

「Javaで今の日時ってどうやって取得するんですか?アプリにログインした時間とかを記録したくて…」

先生

「Javaには日付や時刻を簡単に取得できるLocalDateLocalTimeLocalDateTimeという便利なクラスがありますよ。」

生徒

「どれを使えばいいんですか?違いもよくわからなくて…」

先生

「それぞれの違いと使い方をわかりやすく説明しましょう!」

1. Javaで現在の日付を取得する:LocalDateの基本

1. Javaで現在の日付を取得する:LocalDateの基本
1. Javaで現在の日付を取得する:LocalDateの基本

Javaで現在の日付を取得する方法としてまず覚えておきたいのがLocalDateクラスです。
LocalDateは「年月日」の情報だけを扱うクラスで、時間情報は含みません。日付表示や記録など、時刻を必要としない場面で使います。

たとえば、今日の日付を取得したいときには次のように書きます。


import java.time.LocalDate;

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

今日の日付: 2025-09-03

LocalDate.now()で現在の日付を取得できます。結果は「2025-09-03」のようなISO形式(年-月-日)で出力されます。

2. Javaで現在の時刻を取得する:LocalTimeの使い方

2. Javaで現在の時刻を取得する:LocalTimeの使い方
2. Javaで現在の時刻を取得する:LocalTimeの使い方

次に、現在の「時刻」だけを取得したい場合はLocalTimeを使います。
LocalTimeは時・分・秒などの時間情報だけを管理し、日付の情報は含まれません。

例えば、今の時刻を知りたいときには以下のように記述します。


import java.time.LocalTime;

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

現在の時刻: 14:35:12.345678

上の例では、現在の時刻が「時:分:秒.ナノ秒」で表示されます。
秒以下の表示を省略したい場合はDateTimeFormatterを使ってフォーマットすることも可能です。

3. Javaで日付と時刻の両方を取得する:LocalDateTimeの活用

3. Javaで日付と時刻の両方を取得する:LocalDateTimeの活用
3. Javaで日付と時刻の両方を取得する:LocalDateTimeの活用

日付と時刻の両方を一緒に取得したいときはLocalDateTimeを使いましょう。
このクラスは「年・月・日・時・分・秒」をすべて含むデータを扱えます。

以下は、現在の日時をまとめて取得するコード例です。


import java.time.LocalDateTime;

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

現在の日時: 2025-09-03T14:35:12.345678

「T」は日付と時刻の区切り文字で、ISO-8601形式での表示が標準となっています。
アプリのログ記録やデータベース保存など、日付と時刻をまとめて使いたいときに非常に便利です。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

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

※ Amazon広告リンク

4. LocalDateTimeを任意の形式にフォーマットする方法

4. LocalDateTimeを任意の形式にフォーマットする方法
4. LocalDateTimeを任意の形式にフォーマットする方法

LocalDateTimeのままだと見た目が少し扱いにくい場合があります。
そんなときはDateTimeFormatterを使って「yyyy/MM/dd HH:mm:ss」のような形式に変換できます。


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

public class FormatExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        String formatted = now.format(formatter);
        System.out.println("フォーマット後の日時: " + formatted);
    }
}

フォーマット後の日時: 2025/09/03 14:35:12

フォーマットを使うと、ユーザー向けに見やすい形式に変換できます。
他にも「yyyy年MM月dd日 HH時mm分ss秒」など、用途に応じて自由に変更できます。

5. LocalDateやLocalTimeのよくある用途と注意点

5. LocalDateやLocalTimeのよくある用途と注意点
5. LocalDateやLocalTimeのよくある用途と注意点

日付と時刻の扱いは、システムによってはタイムゾーンを意識する必要があります。
ただし、LocalDateLocalTimeLocalDateTimeはタイムゾーン情報を持たない「ローカル」な日時を扱うため、サーバや端末の時間設定に依存します。

以下のようなケースで使うと便利です。

  • ログイン時刻の記録:LocalDateTime
  • 誕生日や記念日の管理:LocalDate
  • アラームやスケジュール機能の設定:LocalTime

一方で、タイムゾーンを明確に管理したい場合はZonedDateTimeを使うのが適しています。

6. Javaの日付・時刻取得に関するよくある質問

6. Javaの日付・時刻取得に関するよくある質問
6. Javaの日付・時刻取得に関するよくある質問

Javaで日付や時刻を扱うときによくある疑問をいくつか紹介します。

  • Q. LocalDateTimeとDateの違いは?
    → Java 8以前ではDateCalendarを使っていましたが、LocalDateTimeはそれを改良したものです。使いやすく、スレッドセーフになっています。
  • Q. 未来の日付や過去の日付はどうやって扱う?
    plusDays()minusDays()などのメソッドで簡単に加減できます。

LocalDate tomorrow = LocalDate.now().plusDays(1);
LocalDate yesterday = LocalDate.now().minusDays(1);

このように、現在を基準にした日付操作も直感的に行えます。

まとめ

まとめ
まとめ

Javaの日付と時刻取得を総合的に理解し、実務に応用できる形で整理しよう

Javaで現在の日付や時刻を取得する方法として紹介したLocalDateLocalTimeLocalDateTimeは、日常的なアプリケーション開発の中で非常に重要な役割を持つ基本クラスです。とくに、画面表示、ログ記録、イベント管理、通知システムなど、ほとんどの機能が日付や時刻の管理と結びついているため、これらのクラスを正しく理解して使い分ける力は、Javaプログラマにとって欠かせない基礎知識と言えます。

まず、日付だけを扱うLocalDateは、誕生日や記念日のように時刻を必要としない情報管理に向いており、「今日の日付を取得する」という基本処理を非常にシンプルに記述できます。次に、時刻だけを扱うLocalTimeは、アラーム機能や勤務時間管理など、分単位・秒単位での時間計測に適しています。そして、日付と時刻の両方を同時に扱えるLocalDateTimeは、ログイン記録、取引情報、予約管理など、実務で特に頻繁に使われるクラスであり、現在日時を「一まとまりの情報」として扱える点が大きなメリットです。

さらに、日付と時刻の両方をユーザーに見やすい形式へ変換するためには、DateTimeFormatterを併用する必要があります。ISO形式のままでは読みづらい場面も多いため、「yyyy/MM/dd HH:mm:ss」や「yyyy年MM月dd日 HH時mm分ss秒」などのように用途に応じてフォーマットを設定することで、視覚的にも自然な形へ整形できます。たとえば、ログファイルの記録では秒やミリ秒まで含めた書式を用いることが一般的で、ユーザー向け画面では日本語表記を利用するとわかりやすくなります。フォーマット指定の際には、「MM(=月)」と「mm(=分)」のように似た表記でも全く異なる意味を持つため、注意深く扱う必要があります。

また、未来や過去の日付操作も簡単で、plusDays()minusDays()のようなメソッドを利用することで、明日・昨日といった日付計算が直感的に行えます。これはアプリケーションの有効期限チェック、スケジュール計算、リマインダー処理など実務で多用される機能の基礎になります。日付と時刻を管理する際はタイムゾーンの概念も考慮する必要がある場面がありますが、ローカルな日時を扱う範囲ではLocalDate系が最も使いやすい選択肢となります。

以下に、これまで学んだ内容をまとめたサンプルコードを掲載し、実務で日付・時刻を管理する際に役立つ書き方を再確認できるよう整理しています。これらのサンプルを参考にしながら、用途ごとに必要なクラスとメソッドを正しく使い分ける練習をすると、アプリ開発での日付操作がよりスムーズになるでしょう。

総合サンプルコード:日付・時刻の取得とフォーマットをまとめて確認


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

public class SummaryDateTimeExample {
    public static void main(String[] args) {

        // 今日の日付を取得
        LocalDate today = LocalDate.now();
        System.out.println("今日の日付: " + today);

        // 現在の時刻を取得
        LocalTime nowTime = LocalTime.now();
        System.out.println("現在の時刻: " + nowTime);

        // 現在の日時を取得
        LocalDateTime nowDateTime = LocalDateTime.now();
        System.out.println("現在の日時: " + nowDateTime);

        // 任意の形式にフォーマット
        DateTimeFormatter formatter =
            DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        String formatted = nowDateTime.format(formatter);
        System.out.println("フォーマット後の日時: " + formatted);

        // 日付の加算と減算
        LocalDate tomorrow = today.plusDays(1);
        LocalDate yesterday = today.minusDays(1);
        System.out.println("明日の日付: " + tomorrow);
        System.out.println("昨日の日付: " + yesterday);
    }
}

このサンプルでは、「現在の日付」「現在の時刻」「現在の日時」をまとめて取得し、さらにフォーマット変換、未来・過去の日付操作まで一連の流れで確認できます。実務の様々な場面で応用できる基本的な操作が詰め込まれているため、基礎をしっかり身につけたい初心者にとって非常に役立つ構成となっています。

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

生徒

「LocalDateとLocalTimeとLocalDateTimeの役割がようやく理解できました!最初は違いがよくわからなかったんですが、使える場面が全然違うんですね。」

先生

「そうなんです。それぞれ得意な用途があるので、実際の開発で何を扱いたいかによって適切なクラスを選ぶことが大切ですよ。」

生徒

「フォーマットの設定もいろいろ工夫できるんですね。見やすい日時表示ってアプリの印象にも関わるから重要なんだなと思いました。」

先生

「その通りです。特に日本語表記のフォーマットはユーザー向け画面でよく使われるので覚えておくと便利ですよ。」

生徒

「明日や昨日の日付を簡単に扱えるのも驚きました。業務システムでもよく使えそうです!」

先生

「日付操作はどのシステムでも頻繁に登場しますので、今日の学びをしっかり活かしていきましょう。」

Javaの例外処理の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク