GWT 无法正确序列化 Java 日期。当我尝试通过网络发送用 Javascript 创建的日期时,我发现 1983 年之前的年份中 4 月 1 日(有趣)到 10 月 25 日之间的日期会减去一天。
这意味着,例如,1982-04-01 和 1982-03-31 在 Java 端都变成了 1982-03-31。
鉴于有问题的日期,我猜测这是某种夏令时问题。我尝试过谷歌搜索,只发现另一份参考资料 http://groups.google.com/group/google-web-toolkit/browse_thread/thread/827684411192548e#描述了类似的问题。
我还尝试向 GWT 团队提交错误,但奇怪的是无法找到 GWT 的错误跟踪器。
所以,我的问题是:
还有其他人遇到这个吗?我使用的是 GWT 1.7,想确认 2.0 上是否也会发生这种情况。
我的解决方法是将日期作为字符串发送,并在服务器上解析它们。有人知道更好的解决方法吗?
假设您使用的是 java.util.Date
问题1:2.0好像已经修复了。我已经创建了上面的两个日期(1982-04-01 和 1982-03-31),并且它们正确地到达服务器(两者在服务器上分别表示为 1982-04-01 和 1982-03-31)。我的设置是:
- GWT 2.0
- Java 1.6
- 操作系统 10.6.2
问题 2:您始终可以通过异步服务传递“自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数”,您可以在日期对象上使用 getTime() 获取该值。然后,在服务器端,您可以实例化一个新的 Date,并在构造函数中传递此值:
Date date = new Date(millis);
这节省了摆弄格式化程序和解析器的麻烦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)