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

JavaのLocalDateクラスのgetMonthメソッドを徹底解説!初心者でもわかる月の取得方法

LocalDateのgetMonthメソッド
LocalDateのgetMonthメソッド

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

生徒

「Javaで日付から月だけを取り出したいときって、どうすればいいですか?」

先生

「そんなときは、LocalDateクラスのgetMonthメソッドを使うと、簡単に月情報が取得できるよ。」

生徒

「それって数字の“9”とかが返ってくる感じですか?」

先生

「実はgetMonthは数字じゃなくて、Month型という特別な値を返すんだ。具体例を見ながら学んでいこう!」

1. java.timeパッケージとLocalDateクラスとは?

1. java.timeパッケージとLocalDateクラスとは?
1. java.timeパッケージとLocalDateクラスとは?

java.timeパッケージは、Java 8から追加された日付と時刻を扱うためのAPIセットです。従来のDateCalendarの問題点を解決し、より直感的でバグの少ないコードが書けるようになっています。

中でもLocalDateクラスは、年月日だけを扱いたい場合に非常に便利です。タイムゾーンや時刻の情報を持たず、カレンダー上の日付だけを明確に表現できます。

現在の日付を取得するには、以下のように書きます。


import java.time.LocalDate;

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

2. LocalDateのgetMonthメソッドとは?

2. LocalDateのgetMonthメソッドとは?
2. LocalDateのgetMonthメソッドとは?

getMonthメソッドは、LocalDateから「月」の情報を取得するためのメソッドです。このメソッドは数値ではなく、java.time.Monthという列挙型(enum)を返します。

このMonthは、JANUARY、FEBRUARY、MARCHなど、英語の月名で構成されていて、コードの可読性を高めるのに役立ちます。


import java.time.LocalDate;
import java.time.Month;

public class GetMonthExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2025, 9, 4);
        Month month = date.getMonth();
        System.out.println("月: " + month);
    }
}

月: SEPTEMBER

3. getMonthで返されるMonth列挙型の特徴

3. getMonthで返されるMonth列挙型の特徴
3. getMonthで返されるMonth列挙型の特徴

getMonthで返ってくるMonth型は、ただの文字列ではありません。enumとして定義されているため、定数として扱えます。

たとえば、Month.JANUARYMonth.DECEMBERのように書くことで、特定の月をプログラム内で表現できます。これにより、文字列との比較やミスのない月指定が可能になります。

また、MonthにはgetValue()メソッドがあり、月の数値(1〜12)を取得することもできます。


Month month = Month.SEPTEMBER;
int monthNumber = month.getValue();
System.out.println("月の数値: " + monthNumber);

月の数値: 9

4. getMonthとgetMonthValueの違い

4. getMonthとgetMonthValueの違い
4. getMonthとgetMonthValueの違い

LocalDateクラスには、getMonthgetMonthValueという2つの似たメソッドがあります。

  • getMonth:Month型(JANUARYなど)を返す
  • getMonthValue:int型(1〜12)を返す

英語の月名が必要なときはgetMonth、数値で使いたい場合はgetMonthValueを使うと便利です。


LocalDate date = LocalDate.of(2025, 12, 25);
System.out.println("getMonth: " + date.getMonth());
System.out.println("getMonthValue: " + date.getMonthValue());

getMonth: DECEMBER
getMonthValue: 12

5. getMonthを使った条件分岐

5. getMonthを使った条件分岐
5. getMonthを使った条件分岐

Month型は列挙型なので、switch文などでも使いやすいのが特徴です。以下のように、月ごとの処理を明確に記述できます。


LocalDate date = LocalDate.now();
Month month = date.getMonth();

switch (month) {
    case JANUARY:
        System.out.println("1月です。");
        break;
    case FEBRUARY:
        System.out.println("2月です。");
        break;
    case MARCH:
        System.out.println("3月です。");
        break;
    // 他の月も同様に続ける
    default:
        System.out.println("他の月です。");
}

このようにすれば、if文よりも見通しの良いコードが書けます。

6. 月名を日本語にしたいときの工夫

6. 月名を日本語にしたいときの工夫
6. 月名を日本語にしたいときの工夫

getMonthで得られるのは英語表記(JANUARYなど)ですが、日本語で表示したい場合もありますよね。そういったときは、Month.getValue()で数値を取得して、独自に日本語の月名を定義してあげる方法が一般的です。


String[] jpMonths = {"1月", "2月", "3月", "4月", "5月", "6月", 
                     "7月", "8月", "9月", "10月", "11月", "12月"};

LocalDate date = LocalDate.of(2025, 4, 10);
String monthName = jpMonths[date.getMonthValue() - 1];
System.out.println("日本語の月名: " + monthName);

日本語の月名: 4月

7. getMonthの活用シーン

7. getMonthの活用シーン
7. getMonthの活用シーン

getMonthメソッドは、カレンダーアプリや予約システムなどで「今は何月か」を判定して処理を分けたいときに便利です。また、英語で月名を表示したい画面UIでもそのまま使えるため、国際対応のプログラムにも向いています。

さらに、ログ出力やファイル名の命名などで「月」を含めたい場合にも、getMonthgetMonthValueの併用が役立ちます。

まとめ

まとめ
まとめ

LocalDate.getMonthの基本と使い分けを整理する

今回はJavaのLocalDateクラスに用意されているgetMonthメソッドについて詳しく解説してきました。getMonthメソッドは日付データから月の情報を取得するための機能であり、Javaの日時処理において非常に重要な役割を持っています。特に初心者の方にとっては、日付から特定の情報を取り出す方法を理解する第一歩として、とても学びやすい内容です。

getMonthメソッドの大きな特徴は、単純な数値ではなくMonth型という列挙型を返す点にあります。これによりJANUARYやFEBRUARYといった定数として月を扱うことができ、コードの可読性や安全性が向上します。数値で扱いたい場合はgetMonthValueを使うことで一から十二までの整数として取得できるため、用途に応じて使い分けることが大切です。

また、Month型は列挙型であるためswitch文などと非常に相性が良く、月ごとの処理を明確に記述することができます。これにより条件分岐の可読性が向上し、後から見ても理解しやすいコードを書くことができます。Javaのプログラムでは可読性が重要視されるため、このような特徴を活かすことが実務でも役立ちます。

基本から応用までの流れを振り返る

LocalDateを使った日付処理では、まず現在の日付や任意の日付を取得し、その後で必要な情報を取り出すという流れが基本になります。getMonthを使えば英語の月名を取得でき、getMonthValueを使えば数値として扱うことができます。さらに、日本語表示が必要な場合は配列や変換処理を組み合わせることで柔軟に対応できます。

このように一つのメソッドでも、使い方を工夫することでさまざまな表現が可能になります。初心者のうちはまず基本的な取得方法を覚え、その後で条件分岐や表示形式の変更などに応用していくと理解が深まります。

復習用サンプルコード

ここでgetMonthとgetMonthValueの違いを確認できるサンプルを見てみましょう。両方を同時に使うことで、それぞれの役割がはっきり理解できます。


import java.time.LocalDate;

public class MonthReviewExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2025, 7, 15);

        System.out.println("Month型: " + date.getMonth());
        System.out.println("数値: " + date.getMonthValue());
    }
}

Month型: JULY
数値: 7

このように用途に応じて使い分けることで、柔軟な日付処理が可能になります。

日本語表示への応用

実務では英語だけでなく日本語表示が必要になる場面も多くあります。その場合は数値を取得してから変換する方法が一般的です。以下のように書くことで簡単に日本語の月名に変換できます。


import java.time.LocalDate;

public class MonthJapaneseExample {
    public static void main(String[] args) {
        String[] months = {"1月","2月","3月","4月","5月","6月",
                           "7月","8月","9月","10月","11月","12月"};

        LocalDate date = LocalDate.of(2025, 11, 5);
        String jp = months[date.getMonthValue() - 1];

        System.out.println("日本語: " + jp);
    }
}

日本語: 11月

このように表示形式を柔軟に変更できることもLocalDateの大きな魅力です。

実務での活用ポイント

実際のシステム開発では、月単位で処理を分けるケースが多くあります。例えば売上集計や予約管理、ログの分析など、月ごとにデータを扱う場面ではgetMonthやgetMonthValueが非常に役立ちます。また、ファイル名やディレクトリ構成に月を含める場合にも活用できます。

さらに、国際化対応が必要なアプリケーションでは、英語表記と日本語表記を切り替える処理も重要になります。そのような場合にも今回学んだ知識を応用することで、柔軟な実装が可能になります。

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

生徒

「getMonthが数値ではなくMonth型を返す理由がよくわかりました」

先生

「可読性と安全性を高めるために列挙型が使われています」

生徒

「用途によってgetMonthValueと使い分けるのが大事なんですね」

先生

「数値が必要な場面と表示が必要な場面で使い分けると良いです」

生徒

「日本語表示も簡単にできるので実務でも使えそうです」

先生

「日付処理は多くの場面で使うのでしっかり身につけていきましょう」

カテゴリの一覧へ
新着記事
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の使い方を解説!フォーム入力値を保持したり動的に表示する方法