GWT java.util.Date序列化错误

Dom*_*chi 9 gwt serialization datetime date

GWT没有正确地序列化Java Date.当我尝试通过电汇发送在Javascript中创建的日期时,我发现在1983年之前的4月1日(有趣)和10月25日之间的日期减去了一天.

这意味着,例如,1982-04-01和1982-03-31都在Java方面成为1982-03-31.

鉴于有问题的日期,我猜这是某种DST问题.我试过谷歌搜索,发现只有一个其他参考描述类似的问题.

我也试过向GWT团队提交bug,但奇怪的是没能找到GWT的bugtracker.

所以,我的问题是:

  1. 其他人遇到这个?我正在使用GWT 1.7,并且想确认这是否也发生在2.0上.

  2. 我的解决方法是将日期作为字符串发送,并在服务器上解析它们.谁知道更好的解决方法?

Ray*_*low 5

假设您使用的是java.util.Date

问题1:它似乎在2.0中修复.我在上面创建了两个日期(1982-04-01和1982-03-31),它们正确地通过服务器(两者分别代表服务器分别为1982-04-01和1982-03-31).我的设置是:

  • GWT 2.0
  • Java 1.6
  • OSX 10.6.2

问题2:你总是可以通过async服务传递'自1970年1月1日00:00:00 GMT'以来的毫秒数 - 你可以使用日期对象上的getTime()获得.然后,在服务器端,您可以在构造函数中实例化一个传递此值的新Date:
Date date = new Date(millis);
这样可以节省格式化程序和解析器的功能.