В ASP.NET, как я должен конвертировать в и из GMT? - PullRequest
1 голос
/ 17 декабря 2010

В программном коде:
Я сохраняю свои даты в SQL Server с DateTime.ToUniversalTime().
Затем я читаю дату и преобразую обратно с DateTime.ToLocalTime(), прежде чем представить ее на веб-странице.

Когда мой веб-сервер находится в совершенно другом часовом поясе, чем клиент, это не работает.Все мои преобразования происходят на веб-сервере.Попробовав это в программном коде, я считаю, что мне нужно сделать это на клиенте.

Каков предпочтительный метод проверки того, что фактическое местное время браузера правильно конвертируется в GMT и обратно?

Ответы [ 4 ]

1 голос
/ 17 декабря 2010

Если вы не можете просто отобразить время с указанием часового пояса вашего сервера (например, сказать «12:00 pm Central time») или указать пользователю часовой пояс в своем профиле, то вам нужно будет использовать JavaScript для преобразования время. Я не хочу проходить через все шаги, но на этой странице есть хорошее пошаговое руководство:

https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6016329.html

Обратите внимание, что предпочтительным методом отображения местного времени пользователей было бы предоставление им своего часового пояса в своем профиле, чтобы вы могли выполнить это преобразование на сервере.

1 голос
/ 17 декабря 2010

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

0 голосов
/ 17 декабря 2010

Большинство блогов в Google указывают на тот факт, что .NET не предоставляет способ получить часовой пояс клиента.

Однако большинство говорят, что либо:

  1. Попросите пользователя ввести свой часовой пояс и затем использовать эту информацию для отображения данных

  2. Используйте функцию javascript, которая возвращает смещение часового пояса браузера в минутах, а затем отправляет его на сервер для дальнейшей обработки. См .: http://weblogs.asp.net/cprieto/archive/2010/01/03/handling-timezone-information-in-asp-net.aspx

0 голосов
/ 17 декабря 2010

Большинство реализаций, которые я видел, когда требуется местное время, зависят от пользователя, указывающего свой часовой пояс, который затем сохраняется в его профиле на сервере и затем используется для настройки представленной даты / времени.Казалось бы, это самый надежный метод.Альтернативой может быть попытка установить местоположение пользователей с использованием их IP-адреса (GeoIP или аналогичного) и соответствующим образом изменить его.Это не совсем надежно, так как у некоторых компаний есть шлюзы, которые не расположены географически с пользователем.

...