Формат DateTime на хостинг-сервере - PullRequest
4 голосов
/ 03 ноября 2008

Я недавно сменил своего хостинг-провайдера и из-за часового пояса, в котором сейчас находится сервер, мой код перестал работать.

Хост-сервер сообщает по тихоокеанскому времени. Однако мой код должен работать с GMT, так как мой сайт предназначен для рынка Великобритании. Итак, все мои показы и поиски должны быть в формате дд / мм / гггг

Как я могу учесть разницу?

Например, когда я выполняю DateTime.Parse («03/11/2008»), он завершается неудачей, так как я предполагаю, что «Parse» противоречит настройкам сервера. Я также получаю «Строка не была распознана как действительный DateTime». по всему моему коду.

Ответы [ 4 ]

7 голосов
/ 03 ноября 2008

В вашем файле web.config добавьте элемент <globalization> в узел <system.web>:

<system.web>
  <globalization culture="en-gb"/>
  <!-- ... -->
</system.web>
3 голосов
/ 03 ноября 2008

Попробуйте

DateTime.Parse("28/11/2008", new CultureInfo("en-GB"))

Посмотрите на перегрузку для DateTime.Parse на MSDN .

Кроме того, будьте осторожны, чтобы не перепутать часовые пояса (Тихий океан, GMT) с культурами. Культуры - твоя настоящая проблема здесь.

1 голос
/ 02 декабря 2008

Чтобы избежать решения этих очень скучных проблем, я советую вам всегда анализировать ваши данные в соответствии со стандартным и уникальным форматом даты SQL / ISO, который является ГГГГ-ММ-ДД. Тогда ваши запросы будут работать на международном уровне, какими бы ни были параметры даты на вашем главном сервере или на клиентских запросах (где локальные настройки даты могут отличаться от настроек основного сервера)!

0 голосов
/ 28 сентября 2015

У меня была проблема, которую вышеупомянутые ответы не решили. Так что, может быть, это поможет кому-то не оторвать себе волосы ...

Я получил NaN-NaN-Nan на новом сервере в поле для ввода даты. Выяснилось, что на новом сервере есть опция интернет-обозревателя «Отображать сайты интрасети в режиме совместимости» Обходной путь здесь должен был поставить

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" / >

в заголовке aspx для отключения режима совместимости.

Это решило много странных вещей, которые происходили. Надеюсь, это поможет кому-то!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...