我的应用程序托管在一个时区为“A”的地方。用户可以从任何地方登录。假设他/她从时区“B”的地方登录。我想要他/她登录的用户的时区。所以我可以在他/她的时区显示他的日期。
那么有什么方法可以获取该用户的时区吗?
检索客户端时区的一种方法是通过本机 JNI 方法使用 javascript 代码,如下所示:
private native int getClientOffsetTimeZone() /*-{
return new Date().getTimezoneOffset();
}-*/;
请注意,getTimezoneOffset() 方法返回 UTC 时间和本地时间之间的时差,以分钟为单位。
例如,如果您的时区是 GMT+2,则将返回 -120。
GWT 有这个com.google.gwt.core.client.JsDate
库,它是 Yeser 提到的 JSNI 的包装器。该库公开了原生 JavaScript Date 对象,它允许您使用getTimezoneOffset()
.
从客户端,您可以检索时区偏移量Date.getTimezoneOffset()
并将其传递给您的服务器,然后使用此偏移量来创建正确的日期。