передача часового пояса от клиента (GWT) к серверу (Время Joda)

Я использую GWT на клиенте (браузер) и Время Joda на сервере. Я хотел бы выполнить некоторые поиски DB, ограниченные с каждым днем (т.е. 0:00:00 до 23:59:59), что запрос входит с границами времени на основе пользователя (т.е. браузер) часовой пояс.

Таким образом, у меня есть код GWT, делают a new java.util.Date() получить время запроса и отправить это на сервер. Затем я использую Время Joda как так:

new DateTime(clientDate).toDateMidnight().toDateTime()

Проблема, конечно - это toDateMidnight(), в отсутствие указанного TimeZone, будет использовать систему (т.е. сервер) TimeZone. Я пытался найти простой способ передать TimeZone с браузера на сервер без большой удачи. В GWT я могу получить смещение GMT с:

DateTimeFormat.getFormat("Z").fmt(new Date())

который приводит к чему-то как "-0400". Но Время Joda DateTimeZone.forID() хочет строки, отформатированные как "America/New_York" или целочисленный аргумент часов и минут. Конечно, я могу проанализировать "-0400" в-4 часа и 0 минут, но я задаюсь вопросом, нет ли более простого способа сделать это.

7
задан George Armhold 27 April 2010 в 21:57
поделиться

3 ответа

Вы можете использовать метод java.util.Date getTimezoneOffset () . Это устарело, но в настоящее время это довольно обычное явление для обработки даты в GWT.

И AFAIR, вы можете указать что-то похожее на "UTC + 4" во времени Joda.

Обновление : Я поискал его, и оно "+04: 00". Или используйте DateTimeZone.forOffsetHours () или даже дляOffsetMillis () .

4
ответ дан 7 December 2019 в 12:17
поделиться

Gwittir ( http://www.gwtsite.com ) - это библиотека для GWT, которая включает множество интересных утилит, таких как привязка данных , анимация, отражение и многое другое. Однако есть и другие интересные особенности, такие как новая интеграция с Joda Time. Если вы когда-либо были разочарованы отсутствием поддержки java.util.Calendar в GWT, вам это понравится, поскольку он позволяет легко манипулировать датами в ваших приложениях.

1
ответ дан 7 December 2019 в 12:17
поделиться

в противном случае есть другие способы получить смещение часового пояса с помощью + & -.

import java.util.TimeZone;

используйте: TimeZone.getDefault (). GetRawOffset ()

эта функция вернет время смещения в миллисекундах относительно настройки вашего телефона. Например, GMT-04: 00 равно (-4) * 60 * 60 * 1000 = -14400000.

После некоторых операций получить номер, который вам нужен.

0
ответ дан 7 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: