Я использую 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 минут, но я задаюсь вопросом, нет ли более простого способа сделать это.
Вы можете использовать метод java.util.Date getTimezoneOffset ()
. Это устарело, но в настоящее время это довольно обычное явление для обработки даты в GWT.
И AFAIR, вы можете указать что-то похожее на "UTC + 4" во времени Joda.
Обновление : Я поискал его, и оно "+04: 00". Или используйте DateTimeZone.forOffsetHours ()
или даже дляOffsetMillis ()
.
Gwittir ( http://www.gwtsite.com ) - это библиотека для GWT, которая включает множество интересных утилит, таких как привязка данных , анимация, отражение и многое другое. Однако есть и другие интересные особенности, такие как новая интеграция с Joda Time. Если вы когда-либо были разочарованы отсутствием поддержки java.util.Calendar в GWT, вам это понравится, поскольку он позволяет легко манипулировать датами в ваших приложениях.
в противном случае есть другие способы получить смещение часового пояса с помощью + & -.
import java.util.TimeZone;
используйте: TimeZone.getDefault (). GetRawOffset ()
эта функция вернет время смещения в миллисекундах относительно настройки вашего телефона. Например, GMT-04: 00 равно (-4) * 60 * 60 * 1000 = -14400000.
После некоторых операций получить номер, который вам нужен.