SimpleDateFormat 是非线程安全类。多线程场景(比如web请求中)会出现奇怪的错误,比如传入的日期明明是对的格式,异常抛出空字符串或者格式不对。
Date parse() {
calendar.clear(); // 清理calendar
... // 执行一些操作, 设置 calendar 的日期什么的
calendar.getTime(); // 获取calendar的时间
}
解决方法:
1. 每次实例化一个SimpleFormatDate对象,性能差
2. 用ThreadLocal,web 请求中对应一个web request级别,比方法级别的性能好