使用用户会话时区显示日期和时间



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

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

如果 JavaScript 可以为你工作,这个库看起来很容易使用并且相当健壮: http://pellepim.bitbucket.org/jstz/

试试这个:

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

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

附言此代码应该在客户端获得UTC日期后将其转换为客户端本地时间

最新更新