Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT时区偏移是否向后?_Gwt_Timezone - Fatal编程技术网

GWT时区偏移是否向后?

GWT时区偏移是否向后?,gwt,timezone,Gwt,Timezone,我使用com.google.gwt.i18n.client.timezone尝试显示日期(在服务器上),但gwt在格式化日期时会自动将当前时区添加到日期中,这意味着在不同的时区中显示错误的日期 为了解决这个问题,我将服务器的时区偏移发送到客户端,并在格式化时使用它 我住在澳大利亚,当前时区为+11 GMT/UTC,但格式化日期时显示的默认时区为-11 GMT 服务器的偏移量是+11小时(应该是这样),但是当我尝试用这个偏移量格式化日期时,我得到了错误的日期,因此我需要使用负偏移量 为什么默认时区

我使用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。是的,这就是我想要显示日期的时区。(顺便说一句,我稍后会投票,所以这个问题暂时列为未回答)