2

我使用 GMT/Zulu 时间向我的 GWT 客户端发送时间戳,每个字符串都指定为这样(即 2012-01-19T16:29:18Z,或 4:29pm GMT)。如何在本地时区的浏览器中显示这个?所以对我在 CST 来说,我希望看到上午 10 点 29 分。

如果我不进行格式化,我得到的日期是下午 4:29,这是我所期望的,如果我使用 TimeZone.createTimeZone(0) 的 TimeZone 对象,我会出于某种原因得到晚上 10:29(不是预期的 AM)。我想我应该传递比 0 更有意义的东西,但是如何为浏览器运行的位置获得正确的值?

Ĵ

4

2 回答 2

2

您可以使用以下方法获取在浏览器中配置的时区偏移:

Date d = new Date();
d.getTimezoneOffset();

它不会给你时区名称,我认为这是不可能的。

您将时间作为时间戳还是字符串发送?我发现最好的方法是将 UTC 时间戳发送到客户端,然后使用 DateTimeFormat/TimeZone 将它们格式化为我需要的任何区域。但我想如果你正在解析包含偏移量的日期字符串,你最终会得到一个 UTC 时间戳。

于 2012-01-19T18:16:12.607 回答
1

如果您希望 GWT 客户端代码在浏览器时区中格式化时间,您应该将数据从服务器作为 java.util.Date 对象传递到客户端。

于 2012-01-19T18:14:02.700 回答