ThreadLocal 实现的线程安全SimpleDateFormat
2018-01-09 11:21
127 查看
public class SafeSimpleDateFormat { private final String _format; private static final ThreadLocal<Map<String, SimpleDateFormat>> _dateFormats = new ThreadLocal<Map<String, SimpleDateFormat>>() { public Map<String, SimpleDateFormat> initialValue() { return new HashMap<String, SimpleDateFormat>(); } }; private SimpleDateFormat getDateFormat(String format) { Map<String, SimpleDateFormat> formatters = _dateFormats.get(); SimpleDateFormat formatter = formatters.get(format); if (formatter == null) { formatter = new SimpleDateFormat(format); formatters.put(format, formatter); } return formatter; } public SafeSimpleDateFormat(String format) { _format = format; } public String format(Date date) { return getDateFormat(_format).format(date); } public String format(Object date) { return getDateFormat(_format).format(date); } public Date parse(String day) throws ParseException { return getDateFormat(_format).parse(day); } public void setTimeZone(TimeZone tz) { getDateFormat(_format).setTimeZone(tz); } public void setCalendar(Calendar cal) { getDateFormat(_format).setCalendar(cal); } public void setNumberFormat(NumberFormat format) { getDateFormat(_format).setNumberFormat(format); } public void setLenient(boolean lenient) { getDateFormat(_format).setLenient(lenient); } public void setDateFormatSymbols(DateFormatSymbols symbols) { getDateFormat(_format).setDateFormatSymbols(symbols); } public void set2DigitYearStart(Date date) { getDateFormat(_format).set2DigitYearStart(date); } }
相关文章推荐
- ThreadLocal四重奏(三)ThreadLocal实现原理
- ThreadLocal实现原理
- ThreadLocal 的实现
- 【java】动态代理+ThreadLocal实现数据源及事务管理
- ThreadLocal内部实现及应用场景
- 运用Filter,ThreadLocal和Reflection,实现form到bean的填充
- ThreadLocal 内部实现和应用场景
- 使用ThreadLocal控制事务实现用户转账
- ThreadLocal用法和实现原理(转)
- python生产者与消费者模式:队列实现线程通信、ThreadLocal、GIL
- 使用ThreadLocal改进你的层次的划分(spring事务的实现)
- ThreadLocal 内部实现、应用场景和内存泄漏
- 多线程中同步-异步---生产者与消费者-Queue---ThreadLocal实现局部变量保存
- ThreadLocal用法和实现原理
- 【ThreadLocal】使用ThreadLocal实现线程安全
- ThreadLocal 实现线程内共享变量
- ThreadLocal实现线程范围的共享变量
- ThreadLocal的使用及实现原理
- java并发(2)ThreadLocal的使用及实现原理(使用)
- Thread学习(八) ThreadLocal实现线程范围内的共享变量