建議你使用LocalDateTime而不是Date

2021-10-11 18:53:30 字數 2067 閱讀 7590

但是這三步不是原子操作

多執行緒併發如何保證執行緒安全 - 避免執行緒之間共享乙個******dateformat物件,每個執行緒使用時都建立一次******dateformat物件 => 建立和銷毀物件的開銷大 - 對使用formatparse方法的地方進行加鎖 => 執行緒阻塞性能差 - 使用threadlocal保證每個執行緒最多隻建立一次******dateformat物件 => 較好的方法

localdate

只會獲取年月日

localtime

只會獲取幾點幾分幾秒

localdatetime

獲取年月日時分秒,等於localdate+localtime

instant

獲取秒數

個人覺得如果只是為了獲取秒數或者毫秒數,使用system.currenttimemillis()來得更為方便

修改localdate、localtime、localdatetime、instant

localdatelocaltimelocaldatetimeinstant不可變物件,修改這些物件物件會返回乙個副本

還可以修改月、日

時間計算

比如有些時候想知道這個月的最後一天是幾號、下個週末是幾號,通過提供的時間和日期api可以很快得到答案

localdate localdate = localdate.now();

localdate localdate1 = localdate.with(firstdayofyear());

複製**

比如通過firstdayofyear()返回了當前日期的第一天日期,還有很多方法這裡不在舉例說明

格式化時間

localdate localdate = localdate.of(2019, 9, 10);

string s1 = localdate.format(datetimeformatter.basic_iso_date);

string s2 = localdate.format(datetimeformatter.iso_local_date);

//自定義格式化

datetimeformatter datetimeformatter = datetimeformatter.ofpattern("dd/mm/yyyy");

string s3 = localdate.format(datetimeformatter);

複製**

datetimeformatter預設提供了多種格式化方式,如果預設提供的不能滿足要求,可以通過datetimeformatterofpattern方法建立自定義格式化方式

解析時間

localdate localdate1 = localdate.parse("20190910", datetimeformatter.basic_iso_date);

localdate localdate2 = localdate.parse("2019-09-10", datetimeformatter.iso_local_date);

複製**

******dateformat相比,datetimeformatter是執行緒安全的

localdatetimedate有的我都有,date沒有的我也有,日期選擇請pick me

********************== update on 2019/09/18 ***************==

springboot中應用localdatetime

描述我與建議你

開學這麼久了我從來都沒有寫文章來描繪過我現在的大學生活,因為真的比較無語。姑且不說老婆遠在 天涯海角 就學習的景象 進況已著實讓人痛苦不堪。課上濃重的學習氣氛,課下歡愉的娛樂氛圍已著實不再是那個養育我三年的高中的景象。也許,我描述環境用的都是好詞,但真的深入其中去適應這裡太難太難。近乙個月來,這裡幾...

Git使用建議

轉至元資料結尾 轉至元資料起始 日誌輸出引數 git log 檢視檔案的詳細變更 git log pfilename git log p 或者 git log p filename 不僅顯示提交說明 提交者以及提交日期,還會顯示這每次提交實際修改的內容。檢視檔案中指定位置的變更 git log l1...

FastAdmin使用建議

1.規劃好資料表 直接用命令建立後台管理選單 生成fa test表的crud php think crud t test 生成fa test表的crud且一鍵生成選單 php think crud t test u 1 刪除fa test表生成的crud php think crud t test ...