關(guān)于SimpleDateFormat線程不安全的解決辦法

在需要的時(shí)候創(chuàng)建實(shí)例

public static String format(Date date) throws Exception {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return sdf.format(date);
}

public static Date parse(String strDate) throws Exception {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return sdf.parse(strDate);
}

缺點(diǎn):每次調(diào)用方法都要?jiǎng)?chuàng)建和銷(xiāo)毀sdf對(duì)象,效率較低。

synchronized

private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

public static String format(Date date) throws Exception {
    synchronized(sdf){
        return sdf.format(date);
    }
}

public static Date parse(String strDate) throws Exception {
    synchronized(sdf){
        return sdf.parse(strDate);    
    }
}

缺點(diǎn):并發(fā)量大時(shí)線程阻塞,對(duì)性能有影響。

ThreadLocal

ThreadLocal可以讓每個(gè)線程都得到一個(gè)sdf對(duì)象

private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>() {
    @Override
    protected DateFormat initialValue() {
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    }
};

public static Date parse(String strDate) throws Exception {
    return threadLocal.get().parse(strDate);
}

public static String format(Date date) throws Exception {
    return threadLocal.get().format(date);
}

基于JDK1.8的DateTimeFormatter(線程安全的類(lèi))

private static final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

public static String format(LocalDateTime date) throws Exception {
    return dtf.format(date);
}

public static LocalDateTime parse(String strDate) {
    return LocalDateTime.parse(strDate, dtf);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、 昨晚接到林姐的電話,我問(wèn)她,年底很忙很累吧?她一臉輕松地說(shuō),其實(shí)還好,因?yàn)轫?xiàng)目上有小王幫忙撐著。 小王和林姐...
    i一夢(mèng)閱讀 446評(píng)論 0 2
  • 我很喜歡一首歌叫做越長(zhǎng)大越孤單,孤單是不安的,無(wú)處安放的情緒,我們會(huì)時(shí)常不知道自己想要什么,甚至有時(shí)會(huì)開(kāi)始...
    吖了個(gè)噠閱讀 325評(píng)論 0 1
  • 一、學(xué)習(xí)與實(shí)踐 1.付出不亞于任何人的努力 2.要謙虛,不要驕傲 3.要每天反省 4.活著,就要感謝 5.積善行,...
    grace2039閱讀 181評(píng)論 0 2
  • 思想力家庭教育:孩子“偷拿”爸爸媽媽的錢(qián),我們?cè)撛趺崔k? 今天我們和大家分享一個(gè)話題:孩子“偷拿”爸爸媽媽的錢(qián),我...
    芒果遇見(jiàn)茶閱讀 688評(píng)論 0 0

友情鏈接更多精彩內(nèi)容