使用SimpleDateFormat的时候小心点
SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析或者格式化会导致程序出错。
代码示例演示
写一段小Demo来模拟多线程下SimpleDateFormat做时间格式化的时候报错,代码如下:
1 | package com.vernon.test.demo.jdk.text; |
控制台正常的情况: 运气好~
1 | Connected to the target VM, address: '127.0.0.1:57434', transport: 'socket' |
控制台非正常的情况 运气不好~
1 | Connected to the target VM, address: '127.0.0.1:57756', transport: 'socket' |
通过IntelliJ IDEA的功能查看一下SimpleDateFormat的一个类关系图:








