用于Java 8中的线程的TimeZone.setDefault

时间:2015-07-24 15:02:10

标签: java

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

有没有人有关于如何在Java 8中为线程设置默认时区而不必重做大量代码的建议?

谢谢,

1 个答案:

答案 0 :(得分:3)

根本不使用系统默认值。使用ThreadLocal<T>ThreadLocal<TimeZone>或更好,ThreadLocal<ZoneId>java.time类。然后你可以从那里到处获取你需要的默认值。

就我个人而言,我试图避免使用本地线程,并明确地传递上下文 - 或者如果想要隐式地拥有上下文,则封装所有上下文(例如, Web请求)在适当的上下文类型中,而不是为时区,语言环境等提供单独的线程本地。