-2

请帮帮我。我以 UTC 格式保存日期。在显示它时,我将其转换为当地时间。但它正在显示服务器时间。如何通过识别客户端时区来显示日期?使用 java

4

2 回答 2

3

HTTP 协议没有提供获取客户端时区的方法。应用程序通常做的是允许用户在他们的个人资料或偏好中设置时区。他们可能会使用基于用户 IP 的地理定位来获得初步猜测,但这并不可靠,或者如果可以使用客户端脚本,则使用一段 JavaScript 代码。

如果 JavaScript 可以为您工作,那么这个库似乎易于使用且相当健壮: http: //pellepim.bitbucket.org/jstz/

于 2013-07-02T07:50:21.067 回答
0

尝试这个:

int offset = TimeZone.getDefault().getRawOffset() +
(Calendar.getInstance().getTimeZone().inDaylightTime(yourDate) ? TimeZone.getDefault().getDSTSavings() : 0);
        yourDate.setTime(yourDate.getTime() + offset);

它对我有用,希望它对你有用。

PS在获取UTC日期后,此代码应位于客户端,您将其转换为客户端本地时间

于 2013-07-02T07:50:06.450 回答