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

JavaのLocalDateとgetDayOfWeekの使い方を完全ガイド!初心者でもわかる日付と曜日の取得方法

LocalDateのgetDayOfWeekメソッド
LocalDateのgetDayOfWeekメソッド

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

生徒

「Javaで今日の日付から曜日を取得する方法ってありますか?」

先生

「はい、Javaのjava.timeパッケージにあるLocalDateクラスを使えば、簡単に曜日を取得できますよ。」

生徒

「具体的にどんなコードを書けばいいんですか?」

先生

「それでは、getDayOfWeekメソッドの使い方を中心に見ていきましょう。」

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

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

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

Javaのjava.timeパッケージは、Java 8から導入された新しい日付と時刻のAPIを提供するパッケージです。従来のjava.util.Datejava.util.Calendarと比較して、より直感的で扱いやすい構文が特徴です。

java.timeパッケージには、LocalDateLocalTimeLocalDateTimeなど、さまざまな時間操作用のクラスが含まれており、日付や時間の処理を簡単に行えるようになっています。

2. LocalDateクラスとは?

2. LocalDateクラスとは?
2. LocalDateクラスとは?

LocalDateクラスは、年月日だけを扱う日付専用のクラスです。時刻やタイムゾーンの情報は含まれていないため、「日付」だけを対象にした操作に最適です。

例えば、今日の日付を取得するには、次のように記述します。


import java.time.LocalDate;

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

3. getDayOfWeekメソッドの基本的な使い方

3. getDayOfWeekメソッドの基本的な使い方
3. getDayOfWeekメソッドの基本的な使い方

getDayOfWeekメソッドは、LocalDateのインスタンスから曜日情報を取得するメソッドです。このメソッドはDayOfWeekという列挙型(enum)を返します。

たとえば、今日の曜日を取得したい場合は以下のように記述します。


import java.time.LocalDate;
import java.time.DayOfWeek;

public class DayOfWeekExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        DayOfWeek dayOfWeek = today.getDayOfWeek();
        System.out.println("今日は " + dayOfWeek + " です。");
    }
}

このコードを実行すると、英語表記で曜日が出力されます。たとえば、「MONDAY」や「FRIDAY」といった形式です。

4. 日本語の曜日を表示するには?

「4. 日本語の曜日を表示するには?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. 日本語の曜日を表示するには?
4. 日本語の曜日を表示するには?

日本語で「月曜日」「火曜日」といった表示をしたい場合、DayOfWeekの数値を元に自前で変換する必要があります。以下にその例を紹介します。


import java.time.LocalDate;
import java.time.DayOfWeek;

public class JapaneseDayOfWeek {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        DayOfWeek dayOfWeek = today.getDayOfWeek();

        String[] japaneseDays = {
            "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日"
        };

        int index = dayOfWeek.getValue() % 7; // 月=1, 日=7 → 日曜日を最後に
        System.out.println("今日は " + japaneseDays[index] + " です。");
    }
}

今日は 木曜日 です。

getValue()DayOfWeekの数値(1〜7)を返します。1は月曜日、7は日曜日です。日本のカレンダー表記と一致させたい場合、曜日配列の順序を工夫する必要があります。

5. 指定した日付の曜日を取得する

5. 指定した日付の曜日を取得する
5. 指定した日付の曜日を取得する

「2025年12月25日」のような特定の日付の曜日を調べたい場合も、LocalDateを使えば簡単に実現できます。


import java.time.LocalDate;
import java.time.DayOfWeek;

public class SpecificDateExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2025, 12, 25);
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        System.out.println("2025年12月25日は " + dayOfWeek + " です。");
    }
}

6. getDayOfWeekを活用した曜日チェック処理

6. getDayOfWeekを活用した曜日チェック処理
6. getDayOfWeekを活用した曜日チェック処理

曜日ごとに処理を分けたい場合にもgetDayOfWeekは便利です。以下のようにswitch文を使って、曜日別の処理を実装できます。


import java.time.LocalDate;
import java.time.DayOfWeek;

public class ScheduleExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        DayOfWeek day = today.getDayOfWeek();

        switch (day) {
            case MONDAY -> System.out.println("今週の始まりですね。");
            case FRIDAY -> System.out.println("やっと金曜日です!");
            case SUNDAY -> System.out.println("ゆっくり休みましょう。");
            default -> System.out.println("平日モードです。");
        }
    }
}

7. java.timeとLocalDate・getDayOfWeekを使うメリット

「7. java.timeとLocalDate・getDayOfWeekを使うメリット」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. java.timeとLocalDate・getDayOfWeekを使うメリット
7. java.timeとLocalDate・getDayOfWeekを使うメリット

java.timeパッケージのLocalDategetDayOfWeekを使うことで、日付や曜日の取得・判定がシンプルかつ明確になります。

  • 旧APIのCalendarよりコードが読みやすい
  • スレッドセーフであるため、安全に利用可能
  • 日付操作が直感的に行える

これらの特徴は、業務アプリケーションやWebサービスなど幅広い用途で活用できます。

まとめ

まとめ
まとめ

LocalDateとgetDayOfWeekの重要ポイント総復習

本記事では、Javaのjava timeパッケージに含まれるLocalDateクラスとgetDayOfWeekメソッドの使い方について、初心者にもわかりやすく解説しました。日付と曜日の取得は、Javaプログラミングにおいて非常に基本でありながら、実務でも頻繁に利用される重要な処理です。特にスケジュール管理やカレンダー表示、業務システムの条件分岐など、さまざまな場面で活用されるため、しっかりと理解しておく必要があります。

LocalDateは年月日のみを扱うシンプルなクラスであり、時刻やタイムゾーンの影響を受けないため、日付処理に集中できる点が大きな特徴です。従来のDateやCalendarと比較して、コードの可読性が大きく向上し、初心者でも扱いやすい設計になっています。特にLocalDate nowを使えば、現在の日付を簡単に取得できるため、日付処理の入り口として最適です。

getDayOfWeekメソッドは、LocalDateから曜日を取得するためのメソッドであり、DayOfWeekという列挙型で結果が返されます。これにより、曜日を文字列として扱うのではなく、安全に型として扱うことができ、バグの発生を防ぐことができます。Java初心者にとっても、曜日の取得と判定が明確に書けるため、理解しやすいポイントとなります。

また、日本語の曜日表示を行うためには、getValueメソッドで数値を取得し、配列などを使って変換する方法を学びました。このように、用途に応じて柔軟に表示方法をカスタマイズできる点も、LocalDateとgetDayOfWeekの大きな利点です。業務システムでは、日本語表示やフォーマット変換が求められることが多いため、この知識は実務でも役立ちます。

さらに、特定の日付の曜日取得や、switch文を使った曜日ごとの処理分岐についても確認しました。例えば、月曜日は業務開始の処理、金曜日は締め処理、日曜日は休業対応など、曜日に応じたロジックを実装することで、実践的なプログラムを構築できます。こうした使い方は、スケジュール管理システムや予約システムなどで非常に重要です。

java timeパッケージはスレッドセーフであり、マルチスレッド環境でも安全に利用できる点も大きなメリットです。これにより、サーバーサイドのアプリケーションでも安心して利用でき、安定したシステム構築が可能になります。初心者の段階からこのような新しいAPIに慣れておくことで、より実務に近いスキルを身につけることができます。

今回学習したLocalDateとgetDayOfWeekは、Javaの基礎文法と組み合わせることで、さまざまな応用が可能になります。例えば、日付の加算や減算、期間の計算などと組み合わせることで、より高度な日付処理を実現できます。これらの機能を段階的に学ぶことで、Javaプログラミングの理解がさらに深まります。

サンプルプログラムで理解を深める


import java.time.LocalDate;
import java.time.DayOfWeek;

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

        LocalDate today = LocalDate.now();
        DayOfWeek day = today.getDayOfWeek();

        if (day == DayOfWeek.SATURDAY || day == DayOfWeek.SUNDAY) {
            System.out.println("今日は休日です");
        } else {
            System.out.println("今日は平日です");
        }

        System.out.println("現在の日付は " + today + " です");
        System.out.println("曜日は " + day + " です");
    }
}

今日は平日です
現在の日付は 2026 07 13 です
曜日は MONDAY です

このサンプルでは、LocalDateとgetDayOfWeekを使って曜日を判定し、平日か休日かを分岐しています。このような処理は、実務でも非常によく使われるパターンです。日付と曜日を組み合わせることで、業務ロジックをより柔軟に制御できるようになります。

実務で活かすためのポイント

実務でLocalDateとgetDayOfWeekを活用する際は、単に曜日を取得するだけでなく、業務ロジックにどのように組み込むかが重要になります。例えば、営業日判定や締め日処理、イベントスケジュールの制御など、さまざまな用途があります。こうした処理を効率よく実装するためには、曜日の判定ロジックを関数化するなどの工夫も有効です。

また、表示形式についても、英語表記のまま使用するのか、日本語に変換するのかを用途に応じて選択することが重要です。ユーザー向け画面では日本語表示、内部処理では列挙型のまま扱うといった使い分けが一般的です。

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

生徒

「LocalDateとgetDayOfWeekを使うと、曜日の取得がとても簡単にできるんですね。」

先生

「その通りです。java timeパッケージはとても使いやすいので、ぜひ積極的に使いましょう。」

生徒

「曜日によって処理を分ける方法も分かって、実務のイメージができました。」

先生

「良いですね。実際の業務でも、曜日判定はよく使われる処理です。」

生徒

「日本語表示の方法も覚えたので、画面表示にも応用できそうです。」

先生

「その理解で問題ありません。この知識をベースに、さらに応用していきましょう。」

カテゴリの一覧へ
新着記事
New1
JSP
JSPで文字を出力する方法まとめ!HTMLとの違いと<%= %>の使い方
更新記事
New2
Servlet
JavaのHttpServletRequestクラスとgetHeaderメソッドを初心者向けに徹底解説!
更新記事
New3
Thymeleaf
Thymeleafのth:inlineを完全ガイド!初心者でもわかるインライン式の使い方
更新記事
New4
Spring
Javaの@RequestParamアノテーションの使い方を徹底解説!初心者でもわかるリクエストパラメータの基本と応用
更新記事
人気記事
No.1
Java&Spring記事人気No1
Java
JavaのDateTimeFormatterの使い方を完全ガイド!初心者でもわかる日付フォーマットの基本
No.2
Java&Spring記事人気No2
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.3
Java&Spring記事人気No3
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.6
Java&Spring記事人気No6
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.7
Java&Spring記事人気No7
Thymeleaf
Thymeleafのth:checkedの使い方!チェックボックスON/OFFを動的に制御する方法
No.8
Java&Spring記事人気No8
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門