モジュール java.base
パッケージ java.time

クラスMonthDay

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の方法が適さないことがわかります。

これはvalue-basedクラスです。プログラマは、equalのインスタンスを交換可能として扱い、同期にインスタンスを使用しないようにする必要があります。そうしないと、予期しない動作が発生する可能性があります。 たとえば、将来のリリースでは、同期が失敗する可能性があります。 比較する場合は、equalsメソッドを使用することをお薦めします。

実装要件:
このクラスは不変でスレッドセーフです。
導入されたバージョン:
1.8
関連項目: