我希望应用程序只有一个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();
...
谢谢!