为什么设置时区值会影响整个项目,而是影响单个实例



在我的程序中,我设置了用户登录时TimeZone的默认TimeZone

我正在使用此行来设置TimeZone

TimeZone.setDefault(TimeZone.getTimeZone(usersTimeZoneInMilliSecond)) ;

但是我注意到,当另一个人从另一个区域登录时,一个人的TimeZone会更改为另一个位置。

这样,从世界不同地区登录的每个人都将获得最后一个登录者的timezone

谁能帮助我理解为什么会发生这种情况或我如何避免这种情况。

我使用 javaScript 拉出getTimezoneOffset,我需要在随后的程序中的所有其他地方使用该值。它是必需的,因为我正在开发类似日历的视图,并且应用程序需要知道他们看到的日期,而不是 UTC 或服务器时间。

您的代码更改静态 *默认* 时区。如果只想为特定用户更改它,则需要将其保存在仅限每个用户的非静态变量中。

检查 TimeZone.setDefault javadoc。

为了保存每个用户的时区,这取决于您正在运行的程序和在什么环境中。

如果是基于 Web 的环境,我认为将时区 ID 存储为会话属性是最好的主意。

TimeZone.setDefault(TimeZone.getTimeZone(usersTimeZoneInmilliSecond)) ;它更改整个应用程序的时区,这是一个静态引用。要为不同的用户维护不同的时间戳,您需要使用 Date 对象。

通过调用TimeZone.setDefault(..)可以更改时区的默认设置,因此此更改不仅限于一个特殊用户,如果用户要求默认值,它会影响所有用户。

相关内容

  • 没有找到相关文章

最新更新