GWT: работа с JsDate и Java Date - PullRequest
3 голосов
/ 15 февраля 2011

В моих оверлеях я обертываю объект JavaScript Date в JsDate:

public final native JsDate getDueDate() /*-{
    return this["dueDate"];
}-*/;

Однако, когда я хочу использовать эту дату в виджете, скажем DateBox, я нужно установить значение в качестве даты Java. Я мог бы создать дату Java из моего JsDate, но я считаю, что это добавляет некоторые накладные расходы.

Date javaDate = new Date(jsDate.getTime());

Есть ли более чистый способ достижения этого? Каков наилучший способ преобразования объекта JsDate в объект даты Java и наоборот?

Большое спасибо

Ответы [ 2 ]

4 голосов
/ 20 марта 2013

Код Джейсона не работает для меня, поскольку getDueDateNative().getTime() возвращает double, а не long. Поэтому вы также должны разыграть значение: return new Date((long) getDueDateNative().getTime());

3 голосов
/ 15 февраля 2011
Реализация

GWT Date использует JsDate под прикрытием, поэтому никакого существенного снижения производительности вообще не должно быть.Чтобы упростить для пользователей данного типа, измените оверлей, чтобы он возвращал Date с вместо JsDate с:

public final Date getDueDate() {
  return new Date(getDueDateNative().getTime());
}

private final static JsDate getDueDateNative() /*-{
  return this["dueDate"];
}-*/;
...