博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SimpleDateFormat 线程安全的解决方案--DateTimeFormatter
阅读量:4554 次
发布时间:2019-06-08

本文共 721 字,大约阅读时间需要 2 分钟。

SimpleDateFormat并不是线程安全的,因为在SimpleDateFormat中持有一个Calendar类对象在Parse 和Format方法时会调用calendar.setTime(date)方法,如果在多线程环境下运行,会出现线程安全问题,为了解决这个问题,可以使用以下方法:

1.需要的时候创建新实例
2.使用同步:同步SimpleDateFormat对象
3.使用ThreadLocal: 
4.抛弃JDK,使用其他类库中的时间格式化类,使用Apache commons 里的FastDateFormat,使用Joda-Time类库来处理时间相关问题
以上解决方案可以查看博文http://blog.csdn.net/zxh87/article/details/19414885

这里提供一个 jdk1.8的解决方案,jdk1.8中新增了 LocalDate 与 LocalDateTime等类来解决日期处理方法,同时引入了一个新的类DateTimeFormatter来解决日期格式化问题

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");

LocalDate date = LocalDate.parse("2017 06 17", formatter);
System.out.println(formatter.format(date));
使用这个类来解析时间就不需要关注线程安全的问题了
--转载:

--使用参考:

转载于:https://www.cnblogs.com/sung1024/p/11210787.html

你可能感兴趣的文章
第九周作业
查看>>
解析大型.NET ERP系统 单据编码功能实现
查看>>
互联网创业应该如何找到创意 - RethinkDB创始人Slava Akhmechet的几点建议
查看>>
互联网技术架构给我们的启示
查看>>
hbase redis mysql重要知识点总结
查看>>
取数字(dp优化)
查看>>
web app builder arcgis 自定义弹窗
查看>>
第六天冲刺
查看>>
Golang学习 - strconv 包
查看>>
ERROR util.Shell: Failed to locate the winutils binary in the hadoop binary path
查看>>
imx6 system boot
查看>>
[SDOI2017]硬币游戏
查看>>
Azure 网站、云服务和虚拟机比较
查看>>
Windows 10在2018四月更新中默认安装了OpenSSH客户端
查看>>
jQuery常用函数
查看>>
一个忙着找实习工作的大三在校生的真实感受!!!
查看>>
Linux 下的 scp
查看>>
理解同步,异步和延迟脚本
查看>>
MMS源码中异步处理简析
查看>>
XMind 6 如何画流程图
查看>>