- java.lang.Object
- 
- java.time.MonthDay
 
- 
- すべての実装されたインタフェース:
- Serializable,- Comparable<MonthDay>,- TemporalAccessor,- TemporalAdjuster
 
 public final class MonthDay extends Object implements TemporalAccessor, TemporalAdjuster, Comparable<MonthDay>, Serializable ISO-8601暦体系における月日(--12-03など)。MonthDayは、月と日の組合せを表す不変の日付/時間オブジェクトです。 月と日から生成できるフィールド(四半期など)はすべて取得できます。このクラスは、年、時間、またはタイムゾーンを格納したり表現したりしません。 たとえば、「December 3rd」という値を MonthDayに格納できます。MonthDayは年を持たないため、2月29日のうるう日は有効とみなされます。このクラスは、 Temporalではなく、TemporalAccessorを実装します。 これは、外部情報がなければ2月29日が有効であるかどうかを定義できないため、加算/減算の実装が行われないからです。 これについてMonthDayは、MONTH_OF_YEARおよびDAY_OF_MONTHフィールドにアクセスして問合せおよび設定のみを行えます。ISO-8601暦体系は、世界中の大部分で現在使われている近代の常用暦体系です。 これは、現在のうるう年のルールがすべての時間に適用される、先発グレゴリオ暦体系と同等です。 今日作成されているほとんどのアプリケーションには、ISO-8601のルールが完全に適しています。 ただし、歴史的な日付を使用し、それらが正確であることを必要とするアプリケーションには、ISO-8601の方法が適さないことがわかります。 これは値ベースのクラスです。 MonthDayのインスタンスに対して、アイデンティティの影響を受けやすい操作(参照型等価演算子(==)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じることがあるため、使わないようにしてください。 比較する場合は、equalsメソッドを使用することをお薦めします。- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
- 直列化された形式
 
- 
- 
メソッドのサマリー修飾子と型 メソッド 説明 TemporaladjustInto(Temporal temporal)指定された時間的オブジェクトを、この月-日が含まれるように調整します。LocalDateatYear(int year)この月-日を年と組み合せてLocalDateを作成します。intcompareTo(MonthDay other)この月-日をもう一方の月-日と比較します。booleanequals(Object obj)この月-日がもう一方の月-日と等しいかどうかを確認します。Stringformat(DateTimeFormatter formatter)指定されたフォーマッタを使用してこの月-日を書式設定します。static MonthDayfrom(TemporalAccessor temporal)時間的オブジェクトからMonthDayのインスタンスを取得します。intget(TemporalField field)指定されたフィールドの値をこの月-日からintとして取得します。intgetDayOfMonth()「月の日」フィールドを取得します。longgetLong(TemporalField field)指定されたフィールドの値をこの月-日からlongとして取得します。MonthgetMonth()列挙型Monthを使用して、月フィールドを取得します。intgetMonthValue()月フィールドを取得します(1-12)。inthashCode()この月-日のハッシュ・コードです。booleanisAfter(MonthDay other)この月/日が、指定された月/日より後にあるかどうかをチェックします。booleanisBefore(MonthDay other)この月/日が、指定された月/日より前にあるかどうかをチェックします。booleanisSupported(TemporalField field)指定されたフィールドがサポートされているかどうかをチェックします。booleanisValidYear(int year)この月-日に対して年が有効であるかどうかを確認します。static MonthDaynow()デフォルトのタイムゾーンのシステム・クロックから現在の月-日を取得します。static MonthDaynow(Clock clock)指定されたクロックから現在の月-日を取得します。static MonthDaynow(ZoneId zone)指定されたタイムゾーンのシステム・クロックから現在の月-日を取得します。static MonthDayof(int month, int dayOfMonth)MonthDayのインスタンスを取得します。static MonthDayof(Month month, int dayOfMonth)MonthDayのインスタンスを取得します。static MonthDayparse(CharSequence text)--12-03などのテキスト文字列からMonthDayのインスタンスを取得します。static MonthDayparse(CharSequence text, DateTimeFormatter formatter)特定のフォーマッタを使用して、テキスト文字列からMonthDayのインスタンスを取得します。<R> Rquery(TemporalQuery<R> query)指定された問合せを使用してこの月-日を問い合わせます。ValueRangerange(TemporalField field)指定されたフィールドの有効な値の範囲を取得します。StringtoString()この月-日をStringとして出力します(--12-03など)。MonthDaywith(Month month)月を変更して、このMonthDayのコピーを返します。MonthDaywithDayOfMonth(int dayOfMonth)「月の日」を変更して、このMonthDayのコピーを返します。MonthDaywithMonth(int month)月を変更して、このMonthDayのコピーを返します。
 
- 
- 
- 
メソッドの詳細- 
nowpublic static MonthDay now() デフォルトのタイムゾーンのシステム・クロックから現在の月-日を取得します。これは、デフォルトのタイムゾーンの システム・クロックを問い合せて、現在の月-日を取得します。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。 - 戻り値:
- システム・クロックとデフォルトのタイムゾーンを使用した現在の月-日。null以外
 
 - 
nowpublic static MonthDay now(ZoneId zone) 指定されたタイムゾーンのシステム・クロックから現在の月-日を取得します。これは、 システム・クロックを問い合せて現在の月-日を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。 - パラメータ:
- zone- 使用するゾーンID、null以外
- 戻り値:
- システム・クロックを使用した現在の月-日。null以外
 
 - 
nowpublic static MonthDay now(Clock clock) 指定されたクロックから現在の月-日を取得します。これは、指定されたクロックを問い合せて現在の月-日を取得します。 このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックは dependency injectionを使用して導入できます。- パラメータ:
- clock- 使用するクロック、null以外
- 戻り値:
- 現在の月-日。null以外
 
 - 
ofpublic static MonthDay of(Month month, int dayOfMonth) MonthDayのインスタンスを取得します。「月の日」は、うるう年の月に対して有効である必要があります。 したがって、2月の場合、29日は有効です。 たとえば、4月31日はどの年にも存在するはずがないため、4月と31日を渡すと、例外がスローされます。 対照的に、2月29日は有効である可能性があるため、その月-日を渡すことは許可されています。 - パラメータ:
- month- 表される月。null以外
- dayOfMonth- 表される「月の日」(1-31)
- 戻り値:
- 月-日。null以外
- 例外:
- DateTimeException- いずれかのフィールドの値が範囲外にある場合、または月の日がその月に対して無効である場合
 
 - 
ofpublic static MonthDay of(int month, int dayOfMonth) MonthDayのインスタンスを取得します。「月の日」は、うるう年の月に対して有効である必要があります。 したがって、2番目の月(2月)の場合、29日は有効です。 たとえば、4月31日はどの年にも存在するはずがないため、4番目の月(4月)と31日を渡すと、例外がスローされます。 対照的に、2月29日は有効である可能性があるため、その月-日を渡すことは許可されています。 - パラメータ:
- month- 表される月。1(1月)-12(12月)
- dayOfMonth- 表される「月の日」(1-31)
- 戻り値:
- 月-日。null以外
- 例外:
- DateTimeException- いずれかのフィールドの値が範囲外にある場合、または月の日がその月に対して無効である場合
 
 - 
frompublic static MonthDay from(TemporalAccessor temporal) 時間的オブジェクトからMonthDayのインスタンスを取得します。これは、指定された時間的オブジェクトに基づいて月-日を取得します。 TemporalAccessorは任意の日付と時間のセットに関する情報を表し、それがこのファクトリでMonthDayのインスタンスに変換されます。この変換では、 MONTH_OF_YEARおよびDAY_OF_MONTHフィールドを抽出します。 この抽出が許可されるのは、時間的オブジェクトにISOの暦が含まれているか、そのオブジェクトをLocalDateに変換できる場合にかぎられます。このメソッドは関数型インタフェース TemporalQueryのシグネチャに一致するため、メソッド参照MonthDay::fromを介して、問合せとして使用できます。- パラメータ:
- temporal- 変換する一時オブジェクト、null以外
- 戻り値:
- 月-日。null以外
- 例外:
- DateTimeException- if unable to convert to a- MonthDay
 
 - 
parsepublic static MonthDay parse(CharSequence text) --12-03などのテキスト文字列からMonthDayのインスタンスを取得します。この文字列は有効な月-日を表している必要があります。 フォーマットは --MM-ddです。- パラメータ:
- 戻り値:
- 解析された月-日。null以外
- 例外:
- DateTimeParseException- テキストが解析できない場合
 
 - 
parsepublic static MonthDay parse(CharSequence text, DateTimeFormatter formatter) 特定のフォーマッタを使用して、テキスト文字列からMonthDayのインスタンスを取得します。そのテキストがフォーマッタを使って解析され、月-日が返されます。 - パラメータ:
- text- 解析するテキスト。null以外
- formatter- 使用するフォーマッタ、null以外
- 戻り値:
- 解析された月-日。null以外
- 例外:
- DateTimeParseException- テキストが解析できない場合
 
 - 
isSupportedpublic boolean isSupported(TemporalField field) 指定されたフィールドがサポートされているかどうかをチェックします。これは、指定されたフィールドをこの月-日に問い合せることができるかどうかを確認します。 falseの場合、 rangeメソッドとgetメソッドを呼び出すと例外がスローされます。フィールドが ChronoFieldの場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。- MONTH_OF_YEAR
- YEAR
 ChronoFieldインスタンスはfalseを返します。フィールドが ChronoFieldでない場合、このメソッドの結果は、thisを引数として渡してTemporalField.isSupportedBy(TemporalAccessor)を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。- 定義:
- インタフェースTemporalAccessorのisSupported
- パラメータ:
- field- チェックするフィールド、nullはfalseを返す
- 戻り値:
- フィールドがこの月-日でサポートされている場合はtrue、サポートされていない場合はfalse
 
 - 
rangepublic ValueRange range(TemporalField field) 指定されたフィールドの有効な値の範囲を取得します。範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 この月-日は、返される範囲の精度を高めるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。 フィールドが ChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは適切な範囲のインスタンスを返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。- 定義:
- インタフェースTemporalAccessorのrange
- パラメータ:
- field- 範囲を問い合わせるフィールド、null以外
- 戻り値:
- フィールドの有効値の範囲。null以外
- 例外:
- DateTimeException- フィールドの範囲を取得できない場合
- UnsupportedTemporalTypeException- フィールドがサポートされていない場合
 
 - 
getpublic int get(TemporalField field) 指定されたフィールドの値をこの月-日からintとして取得します。これは、指定されたフィールドの値についてこの月/日に問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。 フィールドが ChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドは、この月-日に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェースTemporalAccessorのget
- パラメータ:
- field- 取得するフィールド、null以外
- 戻り値:
- フィールドの値
- 例外:
- DateTimeException- フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合
- UnsupportedTemporalTypeException- フィールドがサポートされていない場合、または値の範囲が- intを超えている場合
- ArithmeticException- 数値のオーバーフローが発生した場合
 
 - 
getLongpublic long getLong(TemporalField field) 指定されたフィールドの値をこの月-日からlongとして取得します。これは、指定されたフィールドの値についてこの月/日に問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。 フィールドが ChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドは、この月-日に基づいて有効な値を返します。 他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。フィールドが ChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェースTemporalAccessorのgetLong
- パラメータ:
- field- 取得するフィールド、null以外
- 戻り値:
- フィールドの値
- 例外:
- DateTimeException- フィールドの値を取得できない場合
- UnsupportedTemporalTypeException- フィールドがサポートされていない場合
- ArithmeticException- 数値のオーバーフローが発生した場合
 
 - 
getMonthValuepublic int getMonthValue() 月フィールドを取得します(1-12)。このメソッドは、月を1-12の intとして返します。getMonth()を呼び出すことで列挙型Monthが使用される場合は、アプリケーション・コードがより明確になることが多くなります。- 戻り値:
- 月(1-12)
- 関連項目:
- getMonth()
 
 - 
getMonthpublic Month getMonth() 列挙型Monthを使用して、月フィールドを取得します。このメソッドは、月を表す列挙型 Monthを返します。 これによって、int値が意味する内容に関する混乱を回避できます。 プリミティブなint値にアクセスする必要がある場合、この列挙型はint値を提供します。- 戻り値:
- 月。null以外
- 関連項目:
- getMonthValue()
 
 - 
getDayOfMonthpublic int getDayOfMonth() 「月の日」フィールドを取得します。このメソッドは、「月の日」を表すプリミティブな int値を返します。- 戻り値:
- 「月の日」(1-31)
 
 - 
isValidYearpublic boolean isValidYear(int year) この月-日に対して年が有効であるかどうかを確認します。このメソッドは、この月と日、および入力された年から有効な日付が形成されるかどうかを確認します。 これは、2月29日の場合にのみfalseを返す可能性があります。 - パラメータ:
- year- 検証する年
- 戻り値:
- この月-日に対して年が有効である場合はtrue
- 関連項目:
- Year.isValidMonthDay(MonthDay)
 
 - 
withMonthpublic MonthDay withMonth(int month) 月を変更して、このMonthDayのコピーを返します。これは、指定された月を使って月-日を返します。 「月の日」が指定された月に対して無効である場合は、最後の有効な「月の日」に調整されます。 このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。 - パラメータ:
- month- 返される月-日に設定する月。1(1月)-12(12月)
- 戻り値:
- リクエストされた月を含む、この月-日に基づいたMonthDay。null以外
- 例外:
- DateTimeException- 月の値が無効である場合
 
 - 
withpublic MonthDay with(Month month) 月を変更して、このMonthDayのコピーを返します。これは、指定された月を使って月-日を返します。 「月の日」が指定された月に対して無効である場合は、最後の有効な「月の日」に調整されます。 このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。 - パラメータ:
- month- 返される月-日に設定する月。null以外
- 戻り値:
- リクエストされた月を含む、この月-日に基づいたMonthDay。null以外
 
 - 
withDayOfMonthpublic MonthDay withDayOfMonth(int dayOfMonth) 「月の日」を変更して、このMonthDayのコピーを返します。これは、指定された「月の日」を使って月-日を返します。 「月の日」がその月に対して無効である場合は、例外がスローされます。 このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。 - パラメータ:
- dayOfMonth- 返される月-日に設定する「月の日」(1-31)
- 戻り値:
- リクエストされた日を含む、この月-日に基づいたMonthDay。null以外
- 例外:
- DateTimeException- 月の日の値が無効である場合、または月の日がその月に対して無効である場合
 
 - 
querypublic <R> R query(TemporalQuery<R> query) 指定された問合せを使用してこの月-日を問い合わせます。これは、指定された問合せ方針オブジェクトを使用してこの月-日を問い合わせます。 TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。このメソッドの結果は、 thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。- 定義:
- インタフェースTemporalAccessorのquery
- 型パラメータ:
- R- 結果の型
- パラメータ:
- query- 呼び出す問合せ、null以外
- 戻り値:
- 問合せ結果、nullが返されることがある(問合せによって定義される)
- 例外:
- DateTimeException- 問い合わせできない場合(問合せによって定義される)
- ArithmeticException- 数値のオーバーフローが発生した場合(問合せによって定義される)
 
 - 
adjustIntopublic Temporal adjustInto(Temporal temporal) 指定された時間的オブジェクトを、この月-日が含まれるように調整します。これは、月と「月の日」をこれと同じになるように変更して、入力と同じ識別可能な型の時間的オブジェクトを返します。 この調整は、 ChronoField.MONTH_OF_YEARおよびChronoField.DAY_OF_MONTHをフィールドとして渡してTemporal.with(TemporalField, long)を2回使用することと同等です。 指定された時間的オブジェクトがISOの暦体系を使用しない場合は、DateTimeExceptionがスローされます。ほとんどのケースで、 Temporal.with(TemporalAdjuster)を使用して、呼び出しパターンを逆にすると明確になります。// these two lines are equivalent, but the second approach is recommended temporal = thisMonthDay.adjustInto(temporal); temporal = temporal.with(thisMonthDay); このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。 - 定義:
- インタフェースTemporalAdjusterのadjustInto
- パラメータ:
- temporal- 調整するターゲット・オブジェクト、null以外
- 戻り値:
- 調整されるオブジェクト、null以外
- 例外:
- DateTimeException- 調整を実行できない場合
- ArithmeticException- 数値のオーバーフローが発生した場合
 
 - 
formatpublic String format(DateTimeFormatter formatter) 指定されたフォーマッタを使用してこの月-日を書式設定します。この月-日がフォーマッタに渡されて、文字列が生成されます。 - パラメータ:
- formatter- 使用するフォーマッタ、null以外
- 戻り値:
- 書式設定された月-日を表す文字列。null以外
- 例外:
- DateTimeException- 出力時にエラーが発生した場合
 
 - 
atYearpublic LocalDate atYear(int year) この月-日を年と組み合せてLocalDateを作成します。これは、この月-日および指定された年から形成された LocalDateを返します。2月29日という月-日は、その年がうるう年でなければ、結果となる日付で2月28日に調整されます。 このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。 - パラメータ:
- year- 使用する年(MIN_YEARからMAX_YEARまで)
- 戻り値:
- この月-日および指定された年から形成されたローカル日付。null以外
- 例外:
- DateTimeException- その年が有効な年の範囲外にある場合
 
 - 
compareTopublic int compareTo(MonthDay other) この月-日をもう一方の月-日と比較します。この比較は、まず月の値に基づいて行われ、次に日の値に基づいて行われます。 Comparableに定義されているとおりに、equalsと一致しています。- 定義:
- compareTo、インタフェース:- Comparable<MonthDay>
- パラメータ:
- other- 比較対象のもう一方の月-日。null以外
- 戻り値:
- コンパレータ値、小さい場合は負、大きい場合は正
 
 - 
isAfterpublic boolean isAfter(MonthDay other) この月/日が、指定された月/日より後にあるかどうかをチェックします。- パラメータ:
- other- 比較対象のもう一方の月-日。null以外
- 戻り値:
- これが指定された月-日より後にある場合はtrue
 
 - 
isBeforepublic boolean isBefore(MonthDay other) この月/日が、指定された月/日より前にあるかどうかをチェックします。- パラメータ:
- other- 比較対象のもう一方の月-日。null以外
- 戻り値:
- この時点が指定された月-日より前にある場合はtrue
 
 - 
equalspublic boolean equals(Object obj) この月-日がもう一方の月-日と等しいかどうかを確認します。この比較は、1年のうちのそれらの月-日の時系列上の位置に基づいています。 - オーバーライド:
- equals、クラス:- Object
- パラメータ:
- obj- チェックするオブジェクト、nullはfalseを返す
- 戻り値:
- これがもう一方の月-日と等しい場合はtrue
- 関連項目:
- Object.hashCode()、- HashMap
 
 - 
hashCodepublic int hashCode() この月-日のハッシュ・コードです。- オーバーライド:
- hashCode、クラス:- Object
- 戻り値:
- 適切なハッシュ・コード
- 関連項目:
- Object.equals(java.lang.Object),- System.identityHashCode(java.lang.Object)
 
 
- 
 
-