Как мне заставить GWT DateTimeFormat отображаться с использованием сервера TimeZone, а не клиента? - PullRequest
6 голосов
/ 03 февраля 2010

Я пытаюсь отобразить (java.util.) Date на стороне клиента, и он продолжает использовать часовой пояс браузера, в результате чего отображается различная дата в зависимости от того, где вы просматриваете страницу.

Как мне заставить Formatter (DateTimeFormat) отображать дату, используя часовой пояс сервера, а не пользователя?

Спасибо

Ответы [ 2 ]

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

«Самое простое» решение (которое не требует взаимодействия с сервером) просто заставляет DateTimeFormat использовать определенный часовой пояс (тот, в котором находится ваш сервер), например так:

String pseudoServerTime = DateTimeFormat.getFullTimeFormat().format(new Date(), TimeZone.createTimeZone(TimeZoneConstants.europeWarsaw());

Вы можете жестко закодировать строку / объект часового пояса где-нибудь как public static final, чтобы его можно было легко изменить, если вы перемещаете / меняете серверы (и компилятор GWT это встроит, так что без снижения производительности).

1 голос
/ 03 февраля 2010

Будет ли дата изменена на клиенте? Если нет, сделайте формат на сервере и просто отправьте строковое значение. Одна последняя вещь. Кажется, есть некоторые проблемы с датами на стороне клиента в GWT. См. http://blog.gerardin.info/archives/674

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