GWT - Получить форматирование часового пояса / временной метки браузера - PullRequest
2 голосов
/ 19 января 2012

Я отправляю метки времени своему клиенту GWT, используя время по Гринвичу / Зулу, причем каждая строка обозначена как таковая (например, 2012-01-19T16: 29: 18Z или 16:29 по Гринвичу).Как мне показать это в браузере в местном часовом поясе?Так что для меня в CST я ожидаю увидеть 10:29 утра.

Если я не форматирую, я получаю дату как 16:29, что я ожидаю, если я использую объект TimeZone TimeZone.createTimeZone (0)Я получаю по некоторым причинам 10:29 вечера (не AM, как ожидалось).Я предполагаю, что должен передать что-то более значимое, чем 0, но как мне получить правильное значение для того места, где работает браузер?

J

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Вы можете получить смещение часового пояса, настроенное в браузере, используя:

Date d = new Date();
d.getTimezoneOffset();

Это не даст вам название часового пояса, я не думаю, что это возможно получить.

Отправляете ли вы время как метку времени или строку?Я считаю, что лучший подход - отправлять метки времени UTC клиенту, а затем форматировать их в любую нужную мне зону, используя DateTimeFormat / TimeZone.Но я думаю, что если вы анализируете строку даты, включая смещение, вы все равно получите метку времени UTC.

1 голос
/ 19 января 2012

Если вы хотите, чтобы код клиента GWT форматировал время в часовом поясе браузера, вы должны передать данные с сервера клиенту в виде объекта java.util.Date.

...