第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將java.util.Date 轉換為yyyy-MM-dd 格式的String 無需創(chuàng)建大量對象

將java.util.Date 轉換為yyyy-MM-dd 格式的String 無需創(chuàng)建大量對象

慕森王 2021-11-24 18:30:31
我需要轉換java.util.Date到String的yyyy-MM-dd格式在一個大的數(shù)額。我剛剛轉移到 java 8 并想知道如何正確地做到這一點。我的 Java 7 解決方案如下:DateTimeFormatter DATE_FORMATTER = DateTimeFormat.forPattern(DATE_FORMAT_PATTERN) DATE_FORMATTER.print(value.getTime())它幫助我不創(chuàng)建大量冗余對象。所以現(xiàn)在當我轉向 java 8 時,我想正確地重寫它,但是:LocalDate.fromDateFields(value).toString())每次創(chuàng)建新LocalDate對象,這給 GC 帶來了很多工作。有什么辦法可以解決我的問題嗎?性能和線程安全非常重要。經(jīng)過一些測試,我發(fā)現(xiàn)即使使用以下方法創(chuàng)建新對象:new SimpleDateFormat("yyyy-MM-dd")).format(value))這個話題最快。
查看完整描述

3 回答

?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

以下僅具有將舊 Date 轉換為新 LocalDate 的開銷。


    Date date = new Date();

    LocalDate ldate = LocalDate.from(date.toInstant().atZone(ZoneOffset.UTC));

    String s = DateTimeFormatter.ISO_DATE.format(ldate); // uuuu-MM-dd

然而,DateTimeFormatters 確實是線程安全的,因此每次調(diào)用都會多一個實例化。


聚苯乙烯


我添加.atZone(ZoneOffset.UTC)是因為報告的異常,以及@Flown 的解決方案:指定區(qū)域。由于Date不一定用于 UTC 日期,因此可能會使用另一個日期。


查看完整回答
反對 回復 2021-11-24
?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

使用 SimpleDateFormat 格式化日期。


注意,SDF不是 THREAD-SAFE,它可能并不重要,但請記住這一點。


例如:


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

System.out.println((sdf.format(new Date())).toString());


查看完整回答
反對 回復 2021-11-24
?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

從性能的角度來看,我沒有確切的數(shù)字,但我會使用Java 8 Time API來解決這個問題。在您的特殊情況下,我將使用以下語句:

LocalDate.now().format(DateTimeFormatter.ISO_DATE);

編輯: 對于這個解決方案是從java.util.Datejava.time.LocalDate需要的轉換!

new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();


查看完整回答
反對 回復 2021-11-24
  • 3 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號