GWT时区偏移是否向后?
我使用com.google.gwt.i18n.client.timezone尝试显示日期(在服务器上),但gwt在格式化日期时会自动将当前时区添加到日期中,这意味着在不同的时区中显示错误的日期 为了解决这个问题,我将服务器的时区偏移发送到客户端,并在格式化时使用它 我住在澳大利亚,当前时区为+11 GMT/UTC,但格式化日期时显示的默认时区为-11 GMT 服务器的偏移量是+11小时(应该是这样),但是当我尝试用这个偏移量格式化日期时,我得到了错误的日期,因此我需要使用负偏移量GWT时区偏移是否向后?,gwt,timezone,Gwt,Timezone,我使用com.google.gwt.i18n.client.timezone尝试显示日期(在服务器上),但gwt在格式化日期时会自动将当前时区添加到日期中,这意味着在不同的时区中显示错误的日期 为了解决这个问题,我将服务器的时区偏移发送到客户端,并在格式化时使用它 我住在澳大利亚,当前时区为+11 GMT/UTC,但格式化日期时显示的默认时区为-11 GMT 服务器的偏移量是+11小时(应该是这样),但是当我尝试用这个偏移量格式化日期时,我得到了错误的日期,因此我需要使用负偏移量 为什么默认时区
为什么默认时区错误?当您获取日期时(尤其是在解析日期时),请确保指定时区。GWT只支持“RFC格式”时区,类似于太平洋时间的
-0800
。如果您的服务器正在向客户端发送字符串形式的日期,请确保它包含此格式的时区
然后,当您将日期转换为字符串以将其显示给用户时,请确保使用指定时区的DateTimeFormat.format重载,并传递希望显示日期的时区(在您的情况下,是服务器的时区)
默认情况下,日期显示在用户系统设置的时区中。在GWT中设置默认时区(这样您就可以忽略时区并在服务器的时区中执行所有操作)是在我写这篇文章时进行的。感谢Dominic,我正在使用format方法处理来自服务器的日期对象(不是字符串)和我从服务器传递的时区。根本没有解析。您能检查从服务器接收的日期对象中的数据吗?里面有什么?另外,为了检查是否正常,您使用浏览器的系统的时区是什么?日期的时区偏移量是-660分钟(使用客户端的时区)。当我从服务器得到偏移量时,它是660分钟。乐趣:)看起来服务器正在发送一个日期,并且该日期被存储为UTC日期(因此客户端上的偏移量为-660)。服务器所在的时区是什么?只是想确认一下:这就是您要在其中显示日期的时区?服务器是澳大利亚东部标准时间,表示此时+11,夏时制结束时+10。是的,这就是我想要显示日期的时区。(顺便说一句,我稍后会投票,所以这个问题暂时列为未回答)