当前,我们使用TimeZone.setDefault设置线程的默认时区。
我知道使用Java 8调用此方法可为JVM设置默认时区。

有没有人建议如何在Java 8中为线程设置默认时区而无需重新编写大量代码?

谢谢,

最佳答案

完全不要使用系统默认值。使用ThreadLocal<T>ThreadLocal<TimeZone>或更好的是ThreadLocal<ZoneId>java.time类。然后,您可以从那里获取需要默认值的所有位置。

就我个人而言,我会尽量避免使用局部线程,而是显式地传递上下文-或者,如果您确实希望隐式拥有上下文,请将所有上下文(例如,用于Web请求)封装在适当的上下文类型中,而不是对于时区,语言环境等具有单独的线程语言环境

09-10 05:46
查看更多