我们当前使用 TimeZone.setDefault 来设置线程的默认时区。 我知道在 Java 8 中调用此方法会设置 JVM 的默认时区。
有人对如何在 Java 8 中设置线程的默认时区有建议吗?而无需重新编写大量代码?
谢谢
肯
最佳答案
根本不要使用系统默认值。使用 ThreadLocal<T>
:要么 ThreadLocal<TimeZone>
,或者更好的是 ThreadLocal<ZoneId>
与 java.time
类。然后您可以从那里获取您需要默认值的任何地方。
就我个人而言,我会尽量避免使用本地线程,并显式传递上下文 - 或者如果您想要隐式地拥有上下文,请封装所有上下文(例如,对于 Web request)在适当的上下文类型中,而不是针对时区、区域设置等使用单独的线程局部变量。
关于java - Java 8 中线程的 TimeZone.setDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31613859/