MONTHDAYは時間的ではないながら、なぜYEARMONTHは一時的なのですか?

完全なコード:

なぜYearMonthクラスは、時間的ながら(インターフェース)MonthDay時間的ではないでしょうか?

両方のクラスは、その意味ではほぼ同じですので、これは、奇妙に思えます。

私はMONTHDAYは一時的なインタフェースが使用されている使用済みのどこにも決してありませんが、多分、より良い理由があることを示唆しています。

オレVV:

これは、のドキュメントを読むの質問であるMonthDay右の引用を見つけるためのdavidxxxと他の人に感謝して、:

このクラスの実装TemporalAccessorではなくTemporal2月29日には、プラス/マイナスの実装を防ぐ、外部情報なしで有効であるかどうかを定義することはできないためです。これに関連し、MonthDay唯一のクエリへのアクセスを提供し、フィールドを設定MONTH_OF_YEARしてDAY_OF_MONTH

あなたはのドキュメントからこのスニペットと一緒にこれを読むことができますTemporal

これは完全に十分にはプラスとマイナス使用して操作することになっている日付、時刻、およびオフセットオブジェクトの基本インターフェイスタイプです。

彼らは、プラスとマイナスのために定義したいと思っていませんMonthDayそのため、たとえばそれが何であるかを2月28日プラス1日明らかではありません。何年かで、それは3月1日だ他の年で、2月29日です。

比較では、に月または年を追加するとYearMonth、常に明確に定義されたとは驚くべきことではない結果を与えます。

リンク

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=197404&siteId=1