java.text.DateFormat類的format(),parse()等方法不是執行緒安全的,所以一定不要把此變數定義成全域性的靜態變數
阿新 • • 發佈:2018-12-27
在使用: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");