コンストラクターは、最初に「UTC」以外のものを同等の UTC 時間にDateTimeOffset
変換します。次に、UTC に相当する値がandの範囲外にあるかどうかをチェックし、範囲外にある場合は、発生しているものと同様のものをスローします。DateTime
Kind
DateTime
DateTimeOffset.MinValue
DateTimeOffset.MaxValue
ArgumentOutOfRangeException
DateTime.Kind
使用している変数の を確認し、test
それが「UTC」でない場合は、UTC への変換によって、DateTime
指定された bytest
がこれらの範囲外になるかどうかを調べます。MSDN のドキュメントによると、MinValue
and MaxValue
(UTC) は'1/1/0001 12:00:00 AM +00:00' と '12/31/9999 11:59:59 PM +00:00' です。
ドキュメント(DateTimeOffset.MinValue)は次のことに注意してください。
「メソッドが MinValue との比較を実行する前に、DateTimeOffset 値は協定世界時 (UTC) に変換されます。これは、日付と時刻が最小範囲に近いが、オフセットが正の DateTimeOffset 値は、例外をスローする可能性があることを意味します。たとえば、値 1/1/0001 1:00:00 AM +02:00 は、UTC に変換すると MinValue より 1 時間早いため、範囲外です。」
また ( DateTimeOffset.MaxValue ):
「DateTimeOffset 値は、メソッドが MaxValue と比較する前に協定世界時 (UTC) に変換されます。これは、日付と時刻が最大範囲に近いが、オフセットが負の DateTimeOffset 値は、例外をスローする可能性があることを意味します。たとえば、値 12/31/9999 11:00 PM -02:00 は、UTC に変換すると MaxValue より 1 時間遅れているため、範囲外です。」
また、ドキュメント ( DateTimeOffset Constructor )に従って、非 UTC に適用されるKind
オフセットは「ローカル システムの現在のタイム ゾーンのオフセット」です。