我使用GMT / Zulu时间向我的GWT客户端发送时间戳,每个字符串都是这样指定的(即2012-01-19T16:29:18Z,或格林威治标准时间下午4:29)。如何在本地时区的浏览器中显示此内容?所以对我来说,我希望看到上午10点29分。
如果我没有格式化,我得到的日期为下午4:29,我期待,如果我使用TimeZone.createTimeZone(0)的TimeZone对象,我得到某些原因10:29 PM(不是按预期的AM)。我想我应该传递比0更有意义的东西,但是如何获得浏览器运行位置的正确值?
Ĵ
答案 0 :(得分:2)
您可以使用以下命令获取在浏览器中配置的时区偏移:
Date d = new Date();
d.getTimezoneOffset();
它不会给你时区名称,我认为不可能得到。
您是将时间作为时间戳或字符串发送?我发现最好的方法是将UTC时间戳发送到客户端,然后使用DateTimeFormat / TimeZone将它们格式化为我需要的任何区域。但我想如果你正在解析包含偏移量的日期字符串,那么你最终会得到一个UTC时间戳。
答案 1 :(得分:1)
如果您希望GWT客户端代码格式化浏览器时区中的时间,则应将数据从服务器传递到客户端作为java.util.Date对象。