2013-09-12 2 views
1

Я хочу передать некоторое значение времени (java.sql.Time) с задней стороны на передний план в проекте Java EE. По какой-то исторической причине я анализирую тип времени на длинный тип, вызывая метод getTime(), что означает, что я использовал длинный тип для связи между передним и задним концами. Возникает проблема:TimeZone в Java EE

Когда я получаю длинное время типа в интерфейсе, мне нужно изменить длинный тип обратно на Time с помощью метода js: new Date (long), но значение get от этого метода будет отличаться из часового пояса клиентов, что означает, что разные клиенты в разных часовых поясах будут видеть результат по-разному. Это абсолютно не то, что я хочу. Все клиенты должны видеть одинаковый результат, равный результату в конце.

два способа решения этой:

  1. Изменение часовых поясов обоих переднего конца и заднего конца времени UTC, но java.sql.Time является часовой пояс независимым, я должен изменить часовой пояс виртуальной машины Java, если я хотите изменить часовой пояс java.sql.Time. Это не очень хорошо. Любой другой способ изменить часовой пояс?

  2. Пропустить часовой пояс задней части переднего конца. Но изменить часовой пояс, отличный от UTC в интерфейсе, сложно (может понадобиться js lib).

Может ли кто-нибудь показать мне лучший способ решить эту проблему?

+0

возможно дубликат [Преобразование UTC Epoch к локальной дате с JavaScript] (http://stackoverflow.com/questions/4631928/convert-utc-epoch-to-local-date-with-javascript) –

ответ

1

Другой способ может заключаться в следующем:

  1. Изменить часовой пояс даты бэкэнд к UTC. Используйте http://www.joda.org/joda-time/ - API Joda для этого же. Это лучше всего. Приводится один из лучших примеров here.

  2. Передайте дату переднего конца.

  3. Преобразуйте дату в формате UTC на передней панели и покажите ее конечному пользователю.