原文链接:SimpleDateFormat线程不安全及解决方案及LocalDate和Date的相互转换/获取一段时间内的所有日期 – 编程屋
目录
1 simpleDateFormat的用法
simpleDateFormat是Java提供的一个格式化和解析日期的工具类。它可以进行格式化(日期->文本),解析(文本->日期)和规范化。
我们可以使用SimpleDateFormat方法中的format方法将data类转为String类型,并转为我们想要的格式


我们也可以使用SimpleDateFormat方法中的parse方法中的将String类型转为data类型


2 SimpleDateFormat类的线程不安全问题
在Java1.8没出来之前,我们可能对SimpleDateFormat类使用的较多,但是SimpleDateFormat在多线程环境下是不安全的

如图所示,在多线程环境下,使用SimpleDateFormat类是有线程安全问题的
3 SimpleDateFormat线程不安全原因
因为SimpleDateFoemat类继承了DateFormat,而DateFormat类中定义了一个成员变量calendar。我们的SimpleDateFormat类中的parse和format方法都用到了calendar

<

本文详细阐述了SimpleDateFormat在多线程环境下的不安全性,并提供了ThreadLocal和Java 8新特性的解决方案。同时介绍了LocalDate与Date之间的转换方法,以及如何使用Java 8的DateTimeFormatter进行日期格式化和解析。
最低0.47元/天 解锁文章
1223





