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与类
|
存储 Java 编译器
Java-关于main函数的修饰符(为什么要带public和static)
关于Java主函数的修饰符(为什么要带public和static) public修饰符 public是函数的权限,决定了该函数是否可以被外部的函数调用
|
7月前
static的另一用法
static的另一用法。
44 0
|
Java
Java 权限修饰符(private、protected、public、默认、final、static)
Java 权限修饰符(private、protected、public、默认、final、static)
201 0
C语言关键字static的三种用法
作用域和生命周期的介绍 static修饰局部变量 static修饰全部变量 static修饰函数 作用域和生命周期的介绍 什么样的变量称为局部变量呢?
|
Java API 容器
Java中的Object类Date类Calendar类System类StringBuilder类
Java中的Object类Date类Calendar类System类StringBuilder类
Date类,DateFormat类,Calendar类
Date类,DateFormat类,Calendar类
85 0
|
C语言
详解C语言关键字-static的三种用法
作用域和生命周期的介绍,static修饰局部变量,static修饰全部变量,static修饰函数
170 0
|
Java 调度 C++
java内部类以及为什么要用public static void修饰main()函数,String args[]是什么?(浅显的一些探索)
内部类 成员内部类 成员内部类就是定义在一个类的内部,其实是相当于成员变量的位置。 下面这两种其实都可以被称为成员内部类的,只不过一般static修饰的这种我们一般也可以称之为静态内部类。我们先来研究成员内部类(也可以称之为非静态内部类)怎么定义的话合理即可,明白意思就可以了。
337 0
java内部类以及为什么要用public static void修饰main()函数,String args[]是什么?(浅显的一些探索)