Как получить «реальную» часовую зону браузера с GWT - PullRequest
1 голос
/ 09 июля 2019

Мне нужен реальный идентификатор часового пояса, но НЕ поддельный / общий часовой пояс, такой как Etc / GMT-xxx.Я понимаю, что есть какое-то решение для получения смещения или даже «поддельного» часового пояса с помощью команд:

int offset = new Date().getTimezoneOffset(); String timezone = TimeZone.createTimeZone(offset).getID();

И в настоящее время наш проект использует это.Однако это даст вам только суммарное смещение, но вы никогда не узнаете, содержит ли это смещение смещение DST (летнее время / летнее время).Или другими словами: вы знаете, что полное смещение составляет 2 часа, но оно не скажет, действительно ли оно 2 + 0 или 1 + 1, и это действительно имеет значение в моем случае использования.

Вот наше использованиеcase: у нас есть функция, которая позволяет пользователю загружать файл Excel, где функция будет анализировать файл Excel и вставлять записи в систему.Каждая запись будет иметь разную дату и время.Наша функция должна проверить следующее:

  1. Если браузер TimeZone (откуда пользователь загружает файл) подчиняется DST_offset.
  2. Если он установлен в соответствии с DST, мы далеерешить, подпадает ли Дата под "лето".
  3. Затем наша система сместит дату и время соответственно сохранит в БД.
  4. Итак, внутри пакетного файла Excel несколько записей могутсмещение DST, а некоторые нет.

Я понимаю, что мы можем использовать Java-календарь для достижения вышеуказанной логики 1 и 2, по этой ссылке https://www.baeldung.com/java-daylight-savings. Но, однако, предварительнонеобходимо: нам нужен реальный идентификатор часового пояса, например, «Европа / Рим», но не поддельный или общий «Etc / GMT-xxx».

Пожалуйста, сообщите, как мы можем получить «реальный» идентификатор часового пояса вСмарт GWT?или есть ли альтернатива для обработки упомянутого варианта использования?

...