阿里巴巴java开发手册强制要求:
5. 【强制】SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。(org.apache.commons.lang3.time.DateUtils)
因为SimpleDateFormat 继承DateFormat,DateFormat中定义了属性calendar。SimpleDateFormat 里边parse(..)方法和format(..)方法都使用到了calendar,并且使用过程中,对于cal.clear(),cal.set*(..)都没有添加同步锁。所以SimpleDateFormat类的对象并不适合在多线程中共用。
如下所示: