Java : Month (月) - API使用例

Month (Java SE 17 & JDK 17)の使用例まとめです。
だいたいのメソッドを網羅済みです。
公式API仕様のおともにどうぞ。


概要

クラス構成

Month は日付のを表す列挙型です。

final var date = LocalDate.of(2021, 1, 15);
System.out.println(date); // 2021-01-15

final var month = date.getMonth();
System.out.println(month); // JANUARY
System.out.println(month.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 1月

列挙型定数

APRIL

30日まである4月を表すシングルトン・インスタンスです。

System.out.println(Month.APRIL); // APRIL
System.out.println(Month.APRIL.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 4月

AUGUST

31日まである8月を表すシングルトン・インスタンスです。

System.out.println(Month.AUGUST); // AUGUST
System.out.println(Month.AUGUST.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 8月

DECEMBER

31日まである12月を表すシングルトン・インスタンスです。

System.out.println(Month.DECEMBER); // DECEMBER
System.out.println(Month.DECEMBER.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 12月

FEBRUARY

28日または29日(うるう年)まである2月を表すシングルトン・インスタンスです。

System.out.println(Month.FEBRUARY); // FEBRUARY
System.out.println(Month.FEBRUARY.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 2月

JANUARY

31日まである1月を表すシングルトン・インスタンスです。

System.out.println(Month.JANUARY); // JANUARY
System.out.println(Month.JANUARY.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 1月

JULY

31日まである7月を表すシングルトン・インスタンスです。

System.out.println(Month.JULY); // JULY
System.out.println(Month.JULY.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 7月

JUNE

30日まである6月を表すシングルトン・インスタンスです。

System.out.println(Month.JUNE); // JUNE
System.out.println(Month.JUNE.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 6月

MARCH

31日まである3月を表すシングルトン・インスタンスです。

System.out.println(Month.MARCH); // MARCH
System.out.println(Month.MARCH.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 3月

MAY

31日まである5月を表すシングルトン・インスタンスです。

System.out.println(Month.MAY); // MAY
System.out.println(Month.MAY.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 5月

NOVEMBER

30日まである11月を表すシングルトン・インスタンスです。

System.out.println(Month.NOVEMBER); // NOVEMBER
System.out.println(Month.NOVEMBER.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 11月

OCTOBER

31日まである10月を表すシングルトン・インスタンスです。

System.out.println(Month.OCTOBER); // OCTOBER
System.out.println(Month.OCTOBER.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 10月

SEPTEMBER

30日まである9月を表すシングルトン・インスタンスです。

System.out.println(Month.SEPTEMBER); // SEPTEMBER
System.out.println(Month.SEPTEMBER.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 9月

メソッド

Temporal adjustInto (Temporal temporal)

指定された時間的オブジェクトを、この月が含まれるように調整します。

final var temporal = LocalDate.of(2021, 3, 15);
System.out.println(temporal); // 2021-03-15

final var ret1 = Month.FEBRUARY.adjustInto(temporal);
System.out.println(ret1); // 2021-02-15

final var ret2 = Month.MARCH.adjustInto(temporal);
System.out.println(ret2); // 2021-03-15

final var ret3 = Month.APRIL.adjustInto(temporal);
System.out.println(ret3); // 2021-04-15

int firstDayOfYear (boolean leapYear)

この月の最初の日に対応する「年の日」を取得します。

System.out.println(Month.JANUARY.firstDayOfYear(false)); // 1
System.out.println(Month.FEBRUARY.firstDayOfYear(false)); // 32
System.out.println(Month.MARCH.firstDayOfYear(false)); // 60
System.out.println(Month.APRIL.firstDayOfYear(false)); // 91

System.out.println(Month.JANUARY.firstDayOfYear(true)); // 1
System.out.println(Month.FEBRUARY.firstDayOfYear(true)); // 32
System.out.println(Month.MARCH.firstDayOfYear(true)); // 61
System.out.println(Month.APRIL.firstDayOfYear(true)); // 92

Month firstMonthOfQuarter ()

この四半期の最初の月に相当する月を取得します。

System.out.println(Month.JANUARY.firstMonthOfQuarter()); // JANUARY
System.out.println(Month.FEBRUARY.firstMonthOfQuarter()); // JANUARY
System.out.println(Month.MARCH.firstMonthOfQuarter()); // JANUARY

System.out.println(Month.APRIL.firstMonthOfQuarter()); // APRIL
System.out.println(Month.MAY.firstMonthOfQuarter()); // APRIL
System.out.println(Month.JUNE.firstMonthOfQuarter()); // APRIL

System.out.println(Month.JULY.firstMonthOfQuarter()); // JULY
System.out.println(Month.AUGUST.firstMonthOfQuarter()); // JULY
System.out.println(Month.SEPTEMBER.firstMonthOfQuarter()); // JULY

System.out.println(Month.OCTOBER.firstMonthOfQuarter()); // OCTOBER
System.out.println(Month.NOVEMBER.firstMonthOfQuarter()); // OCTOBER
System.out.println(Month.DECEMBER.firstMonthOfQuarter()); // OCTOBER

static Month from (TemporalAccessor temporal)

時間的オブジェクトからMonthのインスタンスを取得します。

final var temporal = LocalDate.of(2021, 1, 15);
System.out.println(temporal); // 2021-01-15

System.out.println(Month.from(temporal)); // JANUARY
final var temporal = LocalDate.of(1999, 2, 28);
System.out.println(temporal); // 1999-02-28

System.out.println(Month.from(temporal)); // FEBRUARY

int get (TemporalField field)

指定されたフィールドの値をこの月からintとして取得します。

このAPIを使うより、getValue メソッドを使うことをおすすめします。

System.out.println(Month.JANUARY.isSupported(ChronoField.MONTH_OF_YEAR)); // true
System.out.println(Month.JANUARY.get(ChronoField.MONTH_OF_YEAR)); // 1

System.out.println(Month.FEBRUARY.isSupported(ChronoField.MONTH_OF_YEAR)); // true
System.out.println(Month.FEBRUARY.get(ChronoField.MONTH_OF_YEAR)); // 2
System.out.println(Month.FEBRUARY.isSupported(ChronoField.YEAR)); // false
//Month.FEBRUARY.get(ChronoField.YEAR); // UnsupportedTemporalTypeException

String getDisplayName (TextStyle style, Locale locale)

「1月」や「12月」などのテキスト表現を取得します。

final var locale = Locale.getDefault();
System.out.println(locale); // ja_JP

System.out.println(Month.JANUARY.getDisplayName(TextStyle.FULL, locale)); // 1月
System.out.println(Month.JANUARY.getDisplayName(TextStyle.SHORT, locale)); // 1月
System.out.println(Month.JANUARY.getDisplayName(TextStyle.NARROW, locale)); // 1

long getLong (TemporalField field)

指定されたフィールドの値をこの月からlongとして取得します。

このAPIを使うより、getValue メソッドを使うことをおすすめします。

System.out.println(Month.JANUARY.isSupported(ChronoField.MONTH_OF_YEAR)); // true
System.out.println(Month.JANUARY.getLong(ChronoField.MONTH_OF_YEAR)); // 1

System.out.println(Month.FEBRUARY.isSupported(ChronoField.MONTH_OF_YEAR)); // true
System.out.println(Month.FEBRUARY.getLong(ChronoField.MONTH_OF_YEAR)); // 2
System.out.println(Month.FEBRUARY.isSupported(ChronoField.YEAR)); // false
//Month.FEBRUARY.getLong(ChronoField.YEAR); // UnsupportedTemporalTypeException

int getValue ()

月を表すint値を取得します。

System.out.println(Month.JANUARY.getValue()); // 1
System.out.println(Month.FEBRUARY.getValue()); // 2
System.out.println(Month.MARCH.getValue()); // 3
System.out.println(Month.APRIL.getValue()); // 4
System.out.println(Month.MAY.getValue()); // 5
System.out.println(Month.JUNE.getValue()); // 6
System.out.println(Month.JULY.getValue()); // 7
System.out.println(Month.AUGUST.getValue()); // 8
System.out.println(Month.SEPTEMBER.getValue()); // 9
System.out.println(Month.OCTOBER.getValue()); // 10
System.out.println(Month.NOVEMBER.getValue()); // 11
System.out.println(Month.DECEMBER.getValue()); // 12

boolean isSupported (TemporalField field)

指定されたフィールドがサポートされているかどうかをチェックします。

このメソッドの使用例は、get(TemporalField field) にまとめて記載しました。
そちらのAPI使用例をご参照ください。

int length (boolean leapYear)

この月の長さ(日数)を取得します。

System.out.println(Month.JANUARY.length(false)); // 31
System.out.println(Month.FEBRUARY.length(false)); // 28
System.out.println(Month.MARCH.length(false)); // 31
System.out.println(Month.APRIL.length(false)); // 30

System.out.println(Month.JANUARY.length(true)); // 31
System.out.println(Month.FEBRUARY.length(true)); // 29
System.out.println(Month.MARCH.length(true)); // 31
System.out.println(Month.APRIL.length(true)); // 30

int maxLength ()

この月の最大の長さ(日数)を取得します。

System.out.println(Month.JANUARY.minLength()); // 31
System.out.println(Month.JANUARY.maxLength()); // 31

System.out.println(Month.FEBRUARY.minLength()); // 28
System.out.println(Month.FEBRUARY.maxLength()); // 29

System.out.println(Month.MARCH.minLength()); // 31
System.out.println(Month.MARCH.maxLength()); // 31

System.out.println(Month.APRIL.minLength()); // 30
System.out.println(Month.APRIL.maxLength()); // 30

int minLength ()

この月の最小の長さ(日数)を取得します。

このメソッドの使用例は、maxLength() にまとめて記載しました。
そちらのAPI使用例をご参照ください。

Month minus (long months)

この月から指定された月数だけ遡った月を返します。

final var month = Month.FEBRUARY;
System.out.println(month.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 2月

final var ret1 = month.minus(1);
System.out.println(ret1.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 1月

final var ret2 = month.minus(2);
System.out.println(ret2.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 12月

final var ret3 = month.minus(11);
System.out.println(ret3.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 3月

final var ret4 = month.minus(12);
System.out.println(ret4.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 2月

static Month of (int month)

int値からMonthのインスタンスを取得します。

System.out.println(Month.of(1)); // JANUARY
System.out.println(Month.of(2)); // FEBRUARY
System.out.println(Month.of(3)); // MARCH
System.out.println(Month.of(4)); // APRIL
System.out.println(Month.of(5)); // MAY
System.out.println(Month.of(6)); // JUNE
System.out.println(Month.of(7)); // JULY
System.out.println(Month.of(8)); // AUGUST
System.out.println(Month.of(9)); // SEPTEMBER
System.out.println(Month.of(10)); // OCTOBER
System.out.println(Month.of(11)); // NOVEMBER
System.out.println(Month.of(12)); // DECEMBER

Month plus (long months)

この月の後に指定された月数を返します。

final var month = Month.NOVEMBER;
System.out.println(month.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 11月

final var ret1 = month.plus(1);
System.out.println(ret1.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 12月

final var ret2 = month.plus(2);
System.out.println(ret2.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 1月

final var ret3 = month.plus(11);
System.out.println(ret3.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 10月

final var ret4 = month.plus(12);
System.out.println(ret4.getDisplayName(TextStyle.FULL, Locale.JAPAN)); // 11月

<R> R query (TemporalQuery<R> query)

指定された問合せを使用してこの月を問い合わせます。

System.out.println(Month.JANUARY.query(TemporalQueries.precision())); // Months

ValueRange range (TemporalField field)

指定されたフィールドの有効な値の範囲を取得します。

System.out.println(Month.JANUARY.range(ChronoField.MONTH_OF_YEAR)); // 1 - 12

static Month valueOf (String name)

指定された名前を持つこのクラスのenum定数を返します。

System.out.println(Month.valueOf("JANUARY")); // JANUARY
System.out.println(Month.valueOf("FEBRUARY")); // FEBRUARY
System.out.println(Month.valueOf("MARCH")); // MARCH

static Month[] values ()

この列挙クラスの定数を含む配列を宣言されている順序で 返します。

for (final var month : Month.values()) {
    System.out.println(month);
}

// 結果
// ↓
//JANUARY
//FEBRUARY
//MARCH
//APRIL
//MAY
//JUNE
//JULY
//AUGUST
//SEPTEMBER
//OCTOBER
//NOVEMBER
//DECEMBER

Enumで宣言されたメソッド

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

Java API 使用例 : Enum」をご参照ください。


関連記事

ページの先頭へ