我正在编写一个多线程Java应用程序,其中每个用户请求都会创建一个新线程,该线程应根据用户首选项使用不同的区域设置。这不是一个 Web 应用程序,因此 session 的概念在这里不适用。
是否有任何方法可以在线程范围内设置默认区域设置( Activity 区域设置)?我一直在文档中查找它,但它没有阐明默认区域设置是否适用于线程、类加载器、进程或整个 JVM。
谢谢。问候。
最佳答案
来自 Locale.getDefault
的 Javadoc :
Gets the current value of the default locale for this instance of the Java Virtual Machine.
默认区域设置绝对是 JVM 范围的变量,不应该用于尝试跟踪用户的区域设置。你应该看看Java Internationalization讨论如何使用这些类。
就您而言,您似乎可以使用 ThreadLocal<Locale>
,参见ThreadLocal .
关于Java Locale对象作用域是线程还是应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011104/