我正在尝试在线程级别设置时区设置。为此,我之前使用的是日期和日历对象,它们都返回相同的日期时间。我在 JVM 级别看到了语言环境设置,但我从未在线程级别使用语言环境设置,即如果我创建同一类的三个不同线程,我希望每个线程遵循不同的语言环境设置,尤其是 TimeZones。
所以每当我打电话
Date d = new Date();
或者
Calendar c = Calendar.getInstance();
我应该能够根据语言环境设置获得不同的日期时间。
为此,您可以使用ThreadLocal对象。创建一个类似ThreadLocal
类型的对象将具有线程本地对象,可用于使用Calendar#getInstance(Locale)获取对象的实例。Locale
ThreadLocal<Locale>
Locale
Calendar