【发布时间】:2010-12-16 02:52:06
【问题描述】:
我希望我的应用程序只有一个 TimeZone 对象,它将被来自其他地方的许多 SimpleDateFormat 和 Calendar 对象同时使用。这是为了避免必须总是做TimeZone.getTimeZone(ID)。
我知道SimpleDateFormat 和Calendar 类不是线程安全的,这就是为什么我将一个线程配置为始终创建它们的新实例。但是TimeZone 呢?我不清楚我是否可以安全地执行以下操作:
final TimeZone tz = TimeZone.getTimeZone("GMT");
...
//Thread 1.
Thread t1 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t1.start();
...
//Thread 2.
Thread t2 = new Thread(Runnable(){
public void run()
{
Calendar cal = Calendar.getInstance(tz);
...
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.setTimeZone(tz);
...
}
});
t2.start();
...
谢谢!
【问题讨论】:
标签: java timezone thread-safety