Java資料型別之時間

2021-08-09 10:14:46 字數 1033 閱讀 3276

時間轉換是在日常開發中已經遇到的。可以通過******dateformat類,該類用來對日期字串進行解析和格式化輸出。

string轉date

******dateformat sdf = new ******dateformat("yyyy-mm-dd ");  

date

date = sdf.parse(datestring);

date轉string

string datestr=(new ******dateformat("yyyy-mm-dd")).format(ddate);
查閱了點資料,發現:

但要清楚的是,在我們的程式中應當盡少的建立******dateformat 例項,因為建立這麼乙個例項需要耗費很大的代價。會占用大量的記憶體。

如果為了節約開銷,選擇建立公用類方法。但此時又會遇到其他問題。因為******dateformat類是執行緒不安全的(******dateformat繼承了dateformat,在dateformat中定義了乙個protected屬性的 calendar類的物件:calendar。只是因為calendar累的概念複雜,牽扯到時區與本地化等等,jdk的實現中使用了成員變數來傳遞引數,這就造成在多執行緒的時候會出現錯誤)

避免這種問題:解決方法如下:

1.新建例項,但消耗空間。

2.同步******dateformat物件

public

class

datesyncutil

}public

static date parse(string strdate) throws parseexception

} }

3.使用threadlocal(暫未深入了解)

使用threadlocal, 也是將共享變數變為獨享,執行緒獨享肯定能比方法獨享在併發環境中能減少不少建立物件的開銷。如果對效能要求比較高的情況下,一般推薦使用這種方法。

Java之時間轉換

dateformat sdf new dateformat yyyy mm dd hh mm ss date date sdf.parse 2018 06 05 13 01 25 system.out.println date.gettime system.out.println sdf.forma...

mysql之時間型別

一 時間型別 year 年 1901 2155 date 年月日 1000 01 01 9999 12 31 time 時分秒 838 59 59 838 59 59 datetime 年月日時分秒 1000 01 01 00 00 00 9999 12 31 23 59 59 timestamp ...

MySQL資料庫之時間型別

日期型別 date,time,datetime,timestamp,year date 日期型別,預設格式 yyyy mm dd 範圍 1000 1 1 9999 12 31 date 日期型別,預設格式 yyyy mm dd 範圍 1000 1 1 9999 12 31 create table ...