Смещена ли временная зона GWT назад? - PullRequest
2 голосов
/ 11 февраля 2010

Я использую com.google.gwt.i18n.client.timezone, чтобы попытаться отобразить дату (как на сервере), но GWT автоматически добавляет текущий часовой пояс к дате при ее форматировании, что означает неправильную дату показаны в разных часовых поясах.

Для борьбы с этим я отправляю клиенту смещение часового пояса сервера и использую его при форматировании.

Я живу в Австралии, и текущий часовой пояс составляет +11 по Гринвичу / UTC, но часовой пояс по умолчанию, отображаемый при форматировании даты: -11 по Гринвичу.

Смещение от сервера составляет +11 часов (как и должно быть), но когда я пытаюсь отформатировать дату с этим смещением, я получаю неправильную дату, поэтому вместо этого мне нужно использовать отрицательное смещение.

Почему часовой пояс по умолчанию неправильный?

1 Ответ

3 голосов
/ 11 февраля 2010

Когда вы получаете дату (особенно если вы ее анализируете), убедитесь, что вы указали часовой пояс. GWT DateTimeFormat.parse поддерживает только часовые пояса в формате RFC, что-то вроде -0800 для тихоокеанского времени. Если ваш сервер отправляет даты в виде строк клиенту, убедитесь, что он включает часовой пояс в этом формате.

Затем, когда вы конвертируете дату в строку, чтобы представить ее пользователю, убедитесь, что вы используете перегрузку DateTimeFormat.format, которая задает часовой пояс, и передаете часовой пояс, в котором вы хотите, чтобы дата была представлена ​​(часовой пояс сервер, в твоем случае.)

По умолчанию даты представлены в часовом поясе, в котором установлена ​​система пользователя. Установка часового пояса по умолчанию в GWT (чтобы вы могли игнорировать часовые пояса и делать все в часовом поясе сервера) - это открытый вопрос (3489) в то время, когда я пишу это.

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