Java的SimpleDateFormat坑

問題

在多線程中,如果采用SimpleDateFormat直接進行日期轉化需要注意,有坑,SimpleDateFormat的parser等方法非線程安全,有兩個辦法解決,一個通過線程本地變量。
當然如果你每次都new一個SimpleDateFormat對象沒問題,不過這樣比較耗性能。

解決辦法

1.通過線程的本地變量解決

    private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>(); 

     public static DateFormat IndexDayModeFormat()   
        {  
            DateFormat df = threadLocal.get();  
            if(df==null){  
                df = new SimpleDateFormat("yyyyMMdd");  
                threadLocal.set(df);  
            }  
            return df;  
        }  

 
 collectionDate = IndexDayModeFormat().parse(dateTime);

2.使用FastDateFormat

    dirDateFormat = FastDateFormat.getInstance("yyyyMMdd");

其他用法類似,需要引入的jar

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.5</version>
        </dependency>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • 相關概念 面向對象的三個特征 封裝,繼承,多態.這個應該是人人皆知.有時候也會加上抽象. 多態的好處 允許不同類對...
    東經315度閱讀 2,005評論 0 8
  • 朝望 八零年夏天,我懷著忐忑不安的心情和一個伙伴到鄉鎮東興中學校長辦去查看中考成績,因為我那時讀的附中,不...
    潮望閱讀 121評論 4 5
  • 探春,是紅樓里我最喜愛的人物。 小時候看紅樓夢,讀來最痛快的有兩個場景。 一個是壽怡紅群芳開夜宴,說的是寶玉過生日...
    山心與紅閱讀 515評論 0 2
  • 在本篇故事當中,羅扮演的是,一個反派角色。但是這個人也有,他的精彩之處。在劇中,我們可以看到她是怎樣一步步把老馬從...
    達聰閱讀 5,150評論 0 1