【问题标题】:Thread level locale setting in javajava中的线程级语言环境设置
【发布时间】:2013-06-13 08:20:06
【问题描述】:

我正在尝试在线程级别设置时区设置。为此,我之前使用的是日期和日历对象,它们都返回相同的日期时间。我见过 JVM 级别的语言环境设置,但我从未在线程级别使用语言环境设置,即如果我创建同一类的三个不同线程,我希望每个线程遵循不同的语言环境设置,尤其是 TimeZones。

所以每当我打电话时

Date d = new Date();

或

Calendar c = Calendar.getInstance();

我应该能够根据区域设置获得不同的日期时间。

【问题讨论】:

  • 你不能把语言环境作为参数传递给你的线程构造函数吗?正如@TheNewIdiot 提到的,Calendar 有一个工厂方法允许指定语言环境

标签: java date datetime calendar locale


【解决方案1】:

您可以为此目的使用ThreadLocal 对象。创建Locale 类型的ThreadLocal 对象,如ThreadLocal<Locale> 将具有线程本地Locale 对象,可用于使用Calendar#getInstance(Locale) 获取Calendar 对象的实例。

【讨论】:

    猜你喜欢
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2013-06-27
    • 2013-06-14
    • 2013-01-10
    相关资源
    最近更新 更多