JDK1.8的时间类

根据阿里巴巴Java开发手册可知,SimpleDateFormat 是线程不安全的类,源码里面的解释:

* Date formats are not synchronized.
* It is recommended to create separate format instances for each thread.
* If multiple threads access a format concurrently, it must be synchronized

如果想要使用的话,在多线程场景下需要加锁,或者用DateUtils工具类。

private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() {
    @Override
    protected DateFormat initialValue() {
    return new SimpleDateFormat("yyyy-MM-dd");
    }
}; 

如果是JDK8的应用,推荐使用Instant 代替 Date,LocalDateTime 代替 Calendar,DateTimeFormatter 代替 SimpleDateFormat,因为这三个类都是线程安全的。源码中描述如下:This class is immutable and thread-safe.

说点什么

avatar
  Subscribe  
提醒

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部