SimpleDateFormat,DecimalFormat
この 2 つのクラスは、Text 処理クラスにもかかわらず、 thread unsafe なクラスになっています。
使用する場合は、忘れずに synchronized するか、都度インスタンスを生成しなければなりません。
ソース記述例
private static final SimpleDateFormat DF = new SimpleDateFormat("yyyyMMdd");
public static void main(String[] args) throws Exception {
synchronized (DF) {
DF.format(new Date());
}
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
df.format(new Date());
}
こんな感じで、wrapper クラスを作っても良いかもしれません。
wrapper クラス
import java.text.*;
import java.util.*;
public class SynchronizedSimpleDateFormat {
private SimpleDateFormat df_;
public SynchronizedSimpleDateFormat(String format) {
df_ = new SimpleDateFormat(format);
}
public synchronized Date parse(String text) throws ParseException {
return df_.parse(text);
}
public synchronized String format(Date date) {
return df_.format(date);
}
}
|