のjavadocはLocalDate#toDateMidnight
次のようになります。
v1.5 以降では、DateMidnight を避け、代わりに toDateTimeAtStartOfDay() を使用することをお勧めします。これは、以下に詳述する例外のためです。
デフォルトのタイムゾーンが真夜中に夏時間に切り替わり、この LocalDate がその切り替え日を表す場合、このメソッドは例外をスローします。問題は、必要な日付の真夜中などの時間がないため、例外がスローされることです。
真夜中が特定のタイム ゾーンに存在しないという事実は、使用をDateMidnight
完全に避ける十分な理由のように思えます (コードが、この DST 状況を持たないことが知られており、別のタイム ゾーンを使用する必要がないことがわかっている固定のタイム ゾーンを使用していないと仮定します)。将来)。
ただし、DateMidnight
非推奨ではなく、DateMidnight
クラス自体の javadoc に同様の推奨事項や警告はありません。さらに、コンストラクターは、 likeDateMidnight
をスローするのではなく、指定された日の真夜中が存在しないようなインスタントとタイムゾーンを喜んで受け入れます。結果は、1 日の開始時に withのように動作します。IllegalArgumentException
LocalDate#toDateMidnight
DateMidnight
DateTime
特定の日の真夜中が存在しない場合、コンストラクターがLocalDate#toDateMidnight
例外をスローしないのに例外をスローするのはなぜですか? DateMidnight
推奨されるユースケースはDateMidnight
何ですか?