java.text.DateFormat类的format(),parse()等方法不是线程安全的,所以一定不要把此变量定义成全局的静态变量
程序员文章站
2022-04-04 21:23:31
...
在使用:java.text.DateFormat类时,请注意他的format(),parse()等方法不是线程安全的,一定不要把此变量定义成全局的静态变量,否在在多线程的并发环境里会发生你意想不到的错误!!!
例如,不要定义成一下样子:
public static final SimpleDateFormat timestampFormat = 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");