Как найти часовой пояс клиентского компьютера, используя ASP.NET - PullRequest
3 голосов
/ 18 апреля 2011

Мне нужно найти часовой пояс клиентского компьютера, используя ASP.NET (C #) или JavaScript. Какие часовые пояса доступны во всем мире и как конвертировать дату и время в зависимости от часового пояса пользователя.

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

1 Ответ

3 голосов
/ 18 апреля 2011

Невозможно найти настройки часового пояса клиента в ASP.NET.

Вы можете использовать JavaScript для определения текущего времени, но есть несколько часовых поясов, которые можно синхронизировать в любой момент времени.

В Chrome вы можете получить часовой пояс из объекта даты JavaScript.Из того, что я нашел, нет конкретной функции, но код

(new Date()).toString()

даст что-то вроде

Mon Apr 18 2011 08:58:59 GMT+0200 (W. Europe Daylight Time)

На веб-сайтах лучший подход, который я нашел, имеетчтобы каждый пользователь указывал часовой пояс, который будет отображаться все время. Если JavaScript getUtcOffset дает смещение, отличное от ожидаемого для часового пояса пользователя, я покажу уведомление для просмотра пользователем.их настройки.Если часовой пояс можно угадать по дате (которую я обнаружил только в chrome), я предложу этот часовой пояс, но я все равно прибегну к полю выбора, чтобы пользователь могвыберите часовой пояс вручную.

Тем не менее, возможно, что неправильная настройка часового пояса не будет замечена сценарием, потому что большую часть года два часовых пояса могут быть идеально синхронизированы.

Если у вас есть часовой пояс (вы можете перечислить их все с помощью System.TimeZoneInfo.GetSystemTimeZones()), вы можете конвертировать даты в формате UTC с System.TimeZoneInfo.ConvertTimeFromUtc и System.TimeZoneInfo.ConverTimeToUtc соответственно.

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