GWT:使用JsDate和Java Date

时间:2011-02-15 17:05:39

标签: javascript gwt date overlay jsni

在我的叠加层中,我在JsDate中包装了一个JavaScript Date对象:

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

但是,当我想在小部件中使用该日期时,请说一个DateBox,我 需要将值设置为Java Date。我可以从我的创建Java日期 JsDate,但我相信会增加一些开销。

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

有更清洁的方法来实现这一目标吗?将JsDate对象转换为Java Date对象的最佳方法是什么,反之亦然?

非常感谢

2 个答案:

答案 0 :(得分:4)

Jason的代码对我不起作用,因为getDueDateNative().getTime()会返回double而不是long。因此,您还需要转换值:return new Date((long) getDueDateNative().getTime());

答案 1 :(得分:3)

GWT的Date实施使用了JsDate,因此根本不会有任何有意义的性能损失。为了让该类型的消费者更轻松,请将覆盖图更改为Date而不是JsDate s:

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

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