SimpleDateFormat不要定义为static

简介: SimpleDateFormat不要定义为static

SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为static,必须加锁,或者使用 DateUtils 工具类

正例:注意线程安全,使用 DateUtils。亦推荐如下处理:

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

说明:如果是 JDK8 的应用,可以使用 Instant 代替 DateLocalDateTime 代替 CalendarDateTimeFormatter 代替 SimpleDateFormat,官方给出的解释:simple beautiful strong immutable thread-safe。

相关文章
|
存储 Cloud Native 编译器
C++ static与类
C++ static与类
|
6月前
|
C++
【c++】日期类的实现-Class Date
【c++】日期类的实现-Class Date
【c++】日期类的实现-Class Date
|
存储 Java 编译器
Java-关于main函数的修饰符(为什么要带public和static)
关于Java主函数的修饰符(为什么要带public和static) public修饰符 public是函数的权限,决定了该函数是否可以被外部的函数调用
|
6月前
|
存储 数据库
获取当前时间(String形式)一行代码搞定
获取当前时间(String形式)一行代码搞定
46 0
|
Java
Java 权限修饰符(private、protected、public、默认、final、static)
Java 权限修饰符(private、protected、public、默认、final、static)
176 0
|
Java API 容器
Java中的Object类Date类Calendar类System类StringBuilder类
Java中的Object类Date类Calendar类System类StringBuilder类
Date类,DateFormat类,Calendar类
Date类,DateFormat类,Calendar类
81 0
|
存储 索引
String 类的基本用法及String 类的常见操作(一)
String 类的基本用法及String 类的常见操作
String 类的基本用法及String 类的常见操作(一)