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");
            }
        }
    }



  • 相关阅读:
    [导入]自由的生活
    [导入]宁静
    [导入]书店
    [导入]娶老婆的15条金科玉律
    [导入]静静的日子
    [导入]生活无聊的日子
    [导入]新的任务
    [导入]问题:我是一个内向的男生。请问怎么追求自己喜欢的女孩
    [导入]奋斗
    java 多种方式文件读取
  • 原文地址:https://www.cnblogs.com/atai/p/6141889.html
Copyright © 2011-2022 走看看