Невозможно найти настройки часового пояса клиента в 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
соответственно.