zoukankan      html  css  js  c++  java
  • SimpleDateFormat线程不安全问题处理

    在工作中,通过SimpleDateFormat将字符串类型转为日期类型时,发现有时返回的日期类型出错,调用方法如下:

    public final class DateUtil {
    
        static final DateFormat YYYYMMDD_FORMAT = new java.text.SimpleDateFormat("yyyyMMdd");
    
        /**
         * 把yyyyMMdd格式字符串转换成 java.util.Date
         *
         * @param dateStr
         * @return
         */
        public static java.util.Date getUtilDateByShortStr(String datestr) {
            try {
                return YYYYMMDD_FORMAT.parse(datestr);
            } catch (ParseException e) {
                throw new SasException("error.dateformate");
            }
        }
    }

    在多线程调用的情况下,返回的日期型数据与传进去的字符串型日期有可能不一致,即SimpleDateFormat是线程不安全的,所以要把以上方法改造成线程安全的:

    public final class DateUtil {
    
        static final DateFormat YYYYMMDD_FORMAT = new java.text.SimpleDateFormat("yyyyMMdd");
    
        /**
         * 把yyyyMMdd格式字符串转换成 java.util.Date
         *
         * @param dateStr
         * @return
         */
        public synchronized static java.util.Date getUtilDateByShortStr(String datestr) {
            try {
                return YYYYMMDD_FORMAT.parse(datestr);
            } catch (ParseException e) {
                throw new SasException("error.dateformate");
            }
        }
    }



  • 相关阅读:
    webstorm & phpstorm破解
    JSON和JSONP
    angular.extend(dst, src)对象拓展
    angular.foreach 循环方法使用指南
    angular 指令@、=、&的用法和区别
    angular directive指令相互独立
    angular directive指令的复用
    对apply和call的理解
    图片上传
    vue 路由缓存
  • 原文地址:https://www.cnblogs.com/atai/p/6141889.html
Copyright © 2011-2022 走看看