【发布时间】:2017-04-22 12:11:50
【问题描述】:
我在几个地方读到SimpleDateFormat不是线程安全的,但是线程是一个我还不清楚的概念,所以我想知道下面的代码是否是线程安全的;
static public java.util.Date stringToDate(String strDate, String pattern)
throws ParseException {
if (strDate == null || strDate.trim().equals("")) {
return null;
} else {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return new java.util.Date(sdf.parse(strDate).getTime());
}
}
这是一个驻留在名为“DateUtils.java”的类中的方法,在我正在处理的 Spring Boot 应用程序中,我使用DateUtils.stringToDate... 访问它,无论我需要将字符串转换为日期(或传递转换失败时控制器的异常)。
由于每次调用该方法时此方法都使用 SimpleDateFormat 的新实例,因此我相信它是线程安全的,但如果我错了,我会在此处发布此问题以进行更正。我不确定 100% 的主要原因是,即使它是每个方法调用中的一个新实例,DateUtils 类的实例(我相信它甚至不是一个实例,因为它甚至没有被初始化,如果我在这里也错了,请纠正我)在应用程序运行时共享。
谢谢。
【问题讨论】:
标签: java multithreading spring-boot