我正在使用 com.google.gwt.i18n.client.timezone 尝试显示日期(如在服务器上),但 GWT 在格式化时会自动将当前时区添加到日期中,这意味着错误的日期是显示在不同的时区。
为了解决这个问题,我将服务器的时区偏移发送到客户端并在格式化时使用它。
我住在澳大利亚,当前时区是 +11 GMT/UTC,但当我格式化日期时显示的默认时区是 -11 GMT。
与服务器的偏移量是 +11 小时(应该是),但是当我尝试使用此偏移量格式化日期时,我得到了错误的日期,因此我需要使用负偏移量。
为什么默认时区错误?
最佳答案
当您获取日期时(特别是在解析日期时),请确保指定时区。 GWT 的 DateTimeFormat.parse仅支持“RFC 格式”时区,例如太平洋时间的 -0800
。如果您的服务器以字符串形式向客户端发送日期,请确保它包含此格式的时区。
然后,当您将日期转换为字符串以将其呈现给用户时,请确保使用指定 TimeZone 的 DateTimeFormat.format 重载,并传递您希望呈现日期的时区(以下时区)服务器,在你的情况下。)
默认情况下,日期以用户系统设置的时区显示。在 GWT 中设置默认时区(以便您可以忽略时区并在服务器时区中执行所有操作)是 an open issue (3489)在我写这篇文章的时候。
关于gwt - GWT 时区是否向后偏移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2241435/