3

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

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

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

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

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

非常感谢

4

2 回答 2

4

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

于 2013-03-20T11:12:45.423 回答
3

GWT 的Date实现JsDate在幕后使用,因此根本不应该有任何有意义的性能损失。为了使该类型的消费者更容易将您的叠加层更改为返回Dates 而不是JsDates:

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

private final static JsDate getDueDateNative() /*-{
  return this["dueDate"];
}-*/;
于 2011-02-15T17:51:40.610 回答