一般情况SimpleDateFormat在多线程的情况下是不安全的,如果在多线程的情况下共享一个SimpleDateFormat的实例,比如定义一个全局的SimpleDateFormat实例,就会出现如下报错
java.lang.NumberFormatException: multiple points,
package com.java.oop.instance.homework;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
* Threadlocal 是java中提供的一种对象类型
* 通过此类型的对象可以将某个对象绑定到当前线程
* 也可以从当前线程获取某个对象。
*/
class DateUtil{
static SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
public static Date format(String dateStr) {
try {
return sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
}
public class TestThreadlocal01 {
public static void main(String[] args) {
new Thread() {
@Override
public void run() {
Date date = DateUtil.format("2020/06/16");
System.out.println(date);
}
}.start();
ne