使用simpleDateFormat的时候,有时会报错:
java.lang.NumberFormatException: multiple points
报此错是因为SimpleDateFormat是线程非安全的,如果在每个方法中使用到SimpleDateFormat对象的时候,就会短暂的创建SimpleDateFormat对象,方法执行完后被回收,这样做内存开销比较大;在类中定义一个static的SimpleDateFormat变量,线程不安全,报上面的错误;现在有一个折中的方法, 使用ThreadLocal,为每一个线程创建一个SimpleDateFormat对象,这样既可以避免线程安全问题,又可以一定程度避免创建很多的SimpleDateFormat对象,以下是简单的实例:
public class DateFormatUtils { private static ThreadLocal<SimpleDateFormat> sdfLocal = new ThreadLocal<SimpleDateFormat>(); public static SimpleDateFormat getSdf (String formatPattern) { SimpleDateFormat sdf = sdfLocal.get(); if (sdf == null) { sdf = new SimpleDateFormat(formatPattern); sdfLocal.set(sdf); } return sdf; } }
相关推荐
NULL 博文链接:https://flynndang.iteye.com/blog/711878
目录SimpleDateFormat诡异bug复现SimpleDateFormat诡异bug字符串日期转Date日期(parse)Date日期转String类型(format)SimpleDateFormat出现...事项使用ThreadLocal解决SimpleDateFormat线程安全问题总结...
高并发之-SimpleDateFormat类的线程安全问题和解决方案.docx
主要介绍了SimpleDateFormat的线程安全问题与解决方案,非常不错,具有参考借鉴价值,需要的朋友可以参考下
关于SimpleDateFormat的非线程安全问题及其解决方案.docx
SimpleDateFormat线程不安全的5种解决方案.md
SimpleDateFormat线程不安全的5种解决方案.docx
Java标准库中的一些类如ArrayList、HashMap和SimpleDateFormat,都是非线程安全的,在多线程环境下直接使用它们可能导致一些非预期的结果,甚至是一些灾难性的结果。一般来说,Java标准库中的类在其API文档中会说明...
主要介绍了Java SimpleDateFormat线程安全问题原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
深入理解Java:SimpleDateFormat安全的时间格式化
主要介绍了Java多线程环境下SimpleDateFormat类安全转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这份软件安全监测报告主要是监测java开发程序中出现的安全问题,找了一个项目程序监测后出现的原版报告显示,在使用DES加解密的情况下,会被检测...还有关于SimpleDateFormat线程不安全的问题,都有详细解释及处理方法
JavaScript实现的java.text.SimpleDateFormat。希望多多交流。
有关SimpleDateFormat的常用方法说明
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); date.setTime(time); System.out.println(sdf.format(date)); 发现时间于想要的时间不符,请运行Time.reg文件
日期操作。。。基础的SimpleDateFormat格式化日期!!操作!》初级学习代码
由浅入深解析 SimpleDateFormat 由浅入深解析 SimpleDateFormat
SimpleDateFormat使用详解。非常实用!!!!
java 使用SimpleDateFormat类获取系统的当前时间 java 使用SimpleDateFormat类获取系统的当前时间