Недавно я сменил своего хостинг-провайдера, и из-за часового пояса, в котором сейчас находится сервер, мой код перестал работать.
Сервер хостинга сообщает о тихоокеанском времени, однако мой код должен работать с GMT, поскольку мой сайт предназначен для рынка Великобритании. Итак, все мои дисплеи и поисковые запросы должны быть в формате дд / мм / гггг.
Как я могу учесть разницу?
Например, когда я делаю DateTime.Parse («03/11/2008»), он терпит неудачу, поскольку я предполагаю, что «Анализ» противоречит настройкам сервера. Я также получаю «Строка не была распознана как действительный DateTime». во всем моем коде.





Пытаться
DateTime.Parse("28/11/2008", new CultureInfo("en-GB"))
Взгляните на перегрузка для DateTime.Parse в MSDN.
Также будьте осторожны, чтобы не путать часовые пояса (тихоокеанский регион, GMT) с культурами. Культура - ваша настоящая проблема.
В вашем файле web.config добавьте элемент <globalization> в узел <system.web>:
<system.web>
<globalization culture = "en-gb"/>
<!-- ... -->
</system.web>
Чтобы избежать решения этих очень скучных проблем, я советую вам всегда анализировать ваши данные в соответствии со стандартным и уникальным форматом даты SQL / ISO, которым является ГГГГ-ММ-ДД. Ваши запросы будут работать на международном уровне, независимо от параметров даты на вашем основном сервере или на запрашивающих клиентах (где локальные настройки даты могут отличаться от настроек основного сервера)!
У меня была эта проблема, которую не удалось решить с помощью приведенных выше ответов. Так что, может быть, это поможет кому-то не рвать все волосы ..
Я получил NaN-NaN-Nan на новом сервере в моем текстовом поле даты. Выяснилось, что на новом сервере есть опция Internet Explorer «Отображать сайты интрасети в режиме совместимости». Обходной путь здесь заключался в том, чтобы поставить
<meta http-equiv = "X-UA-Compatible" content = "IE=9; IE=8; IE=7; IE=EDGE" / >
в заголовке aspx, чтобы отключить режим совместимости.
Это разрешило множество странных вещей, которые происходили. Надеюсь, это кому-то поможет!
+1 5 лет спустя, и все же лучший ответ - самый простой. Спасибо!