Мое одностраничное приложение javascript извлекает данные в формате JSON с помощью вызовов REST. Даты форматируются с использованием часового пояса UTC в стандартном формате ISO8601, например 2011-02-04T19: 31: 09Z
.
При подписке на службу пользователи выбирают свой часовой пояс из раскрывающегося списка. Этот часовой пояс может отличаться от часового пояса браузера пользователя. Приложение javascript всегда знает, какой часовой пояс выбран пользователем.
Я знаю, как преобразовать строку UTC в дату. Я понимаю, что Javascript представляет даты только в местном часовом поясе.
Но у меня возникли проблемы с выяснением , как отображать дату, отформатированную для часового пояса, ОТЛИЧНОГО от местного часового пояса пользователя . Он должен учитывать летнее время на все даты. Внутренне я хочу обрабатывать все даты как UTC и преобразовывать только в строковое представление даты в другом часовом поясе во время отображения. Мне нужно отображать даты в часовом поясе, выбранном в профиле пользователя, а не в часовом поясе его браузера.
I ' Мы экспериментировали с сервером, отправляющим разницу смещения часового пояса в миллисекундах между часовым поясом браузера пользователя и часовым поясом профиля пользователя. Но я обнаружил, что не могу просто отправить одно значение смещения, но мне нужно отправить смещение для каждой даты, чтобы учесть различия в летнем времени.
Любые предложения или примеры кода о том, как отображать даты, отформатированные в различных часовых поясах? Варианты, которые я нашел до сих пор:
Есть ли более простые или лучшие решения?