(データベースから取得された)日付を表示するdatetimepickerを使用しています。いくつかのマシンでアプリケーションを実行しましたが、Windows XP SP2 では、取得して表示できる最大日付は 2020 年ですが、OS のそれ以降のバージョンでは、最大日付が 2999 など、より高くなる可能性があることがわかりました。この問題について知っていますか?
ご協力ありがとうございました。ジンジン
(データベースから取得された)日付を表示するdatetimepickerを使用しています。いくつかのマシンでアプリケーションを実行しましたが、Windows XP SP2 では、取得して表示できる最大日付は 2020 年ですが、OS のそれ以降のバージョンでは、最大日付が 2999 など、より高くなる可能性があることがわかりました。この問題について知っていますか?
ご協力ありがとうございました。ジンジン
システムによっては、DateTime.MaxValue プロパティを使用して、可能な最大の日付を取得できます。オーバーフローが原因で日付の読み取りに問題がある場合は、DateTime.TryParse() メソッドを使用して、例外をスローせずに値の読み取りを試みることができます。
更新: Martinho は正しいです。MSDN から:
UmAlQuraCalendar などの一部のカレンダーは、MaxValue より前の日付範囲の上限をサポートしています。このような場合、変数の割り当てまたはフォーマットおよび解析操作で MaxValue にアクセスしようとすると、ArgumentOutOfRangeException がスローされる可能性があります。DateTime.MaxValue の値を取得するのではなく、System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime プロパティから、指定されたカルチャの最新の有効な日付値の値を取得できます。
そのため、このフィールドを使用しSystem.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime
て、システムでサポートされている最大の日付値を取得してください。