1. 程式人生 > >java.text.DateFormat類的format(),parse()等方法不是執行緒安全的,所以一定不要把此變數定義成全域性的靜態變數

java.text.DateFormat類的format(),parse()等方法不是執行緒安全的,所以一定不要把此變數定義成全域性的靜態變數

在使用:java.text.DateFormat類時,請注意他的format(),parse()等方法不是執行緒安全的,一定不要把此變數定義成全域性的靜態變數,否在在多執行緒的併發環境裡會發生你意想不到的錯誤!!!

 例如,不要定義成一下樣子:

public static final SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

 一定要把:java.text.DateFormat作為區域性變數來使用

或者可以用FastDateFormat.format(); 代替SimpleDateFormat.format();

因為:SimpleDateFormat是非執行緒安全的,FastDateFormat執行緒安全,所以可以用FastDateFormat 替換SimpleDateFormat

private final FastDateFormat sdf = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss");
//	private final DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");