Вопрос

Я использую DateTimePicker, который отображает дату (которая получена из базы данных). Я запустил свое приложение на нескольких машинах, и я обнаружил, что на Windows XP SP2 максимальная дата, которая может быть получена и отображена, составляет 2020 год, но для более поздних версий ОС максимальная дата может быть высокой, например, 2999. Знаешь об этой проблеме?

Спасибо за помощь. Цзин Цзин

Это было полезно?

Решение

Вы можете использовать свойство DateTime.maxValue для получения максимально возможной даты, в зависимости от системы. Если у вас возникли проблемы с чтением даты из -за переполнения, вы можете использовать методы dateTime.trarse (), чтобы попытаться прочитать значение, не бросая исключение.

ОБНОВИТЬ:Мартинью прав. От MSDN:

Некоторые календари, такие как Umalquracalendar, поддерживают диапазон верхней даты, который раньше, чем MaxValue. В этих случаях попытка получить доступ к MAXValue в операциях переменных или форматировании и аналитическом анализе может выбрать аргумент в пользу разложения. Вместо того, чтобы извлечь значение dateTime.maxValue, вы можете получить значение последнего действительного значения даты указанной культуры из System.globalization.cultureInfo.DateTimeFormat.calendar.maxSupportEdDateTeTime.

Итак, используйте System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime Поле, чтобы получить максимальное значение даты, поддерживаемое системой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top