Java新API的時間格式化
前言:
時間過得真是快,現在已經是2022年瞭。作為開發來說,時間處理是非常繁瑣的。從Java 8開始有瞭Java 8 Time Api 使用方法技巧、時間的處理更加優雅,不再需要借助三方類庫,而且線程安全。今天來梳理一下新API的格式化,而且還要玩點你沒玩過的東西,點贊、轉發、再看走起來。
新API的時間格式化
新的時間API的時間格式化由java.time.format.DateTimeFormatter
負責。
本地化時間
結合枚舉FormatStyle
定義的風格,DateTimeFormatter
預定義瞭基於本地(Locale
)風格的時間格式。
我們來看這段代碼:
String format = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) .format(ZonedDateTime.now());
如果你在中國,格式化結果:
2022年1月6日 下午4:22:01
如果你在美國:
Jan 6, 2022, 4:21:10 PM
有三個靜態方法及其重載來格式化本地化時間,具體已經整理成瞭思維導圖:
ISO/RFC規范格式
DateTimeFormatter
還內置瞭ISO和RFC的時間格式,基於內置的DateTimeFormatter
靜態實例。
舉個例子:
// 靜態實例 DateTimeFormatter isoWeekDateFormatter = DateTimeFormatter.ISO_WEEK_DATE; // 執行格式化 String format = isoWeekDateFormatter.format(LocalDateTime.now()); // format = 2022-W01-4 System.out.println("format = " + format);
其它的如下表格所示:
范式格式化
這種方式應該是我們最常用的方式瞭。通過字母和符號來構建一個范式(Patterns),使用ofPattern(String)
或者ofPattern(String, Locale)
方法傳遞構建的范式。例如,d MMM uuuu
將把2011-12-03
格式化為2011年12月3日
。從一個模式中創建的格式可以根據需要多次使用,它是不可改變的,並且是線程安全的。
相信什麼yyyy-MM-dd HH:mm:ss
你都玩膩瞭,給大傢看點你沒見過的:
// 最後面是兩個V 不是W 單個V會報錯 String pattern = "G uuuu'年'MMMd'日' ZZZZZ VV"; String format= DateTimeFormatter.ofPattern(pattern).format(ZonedDateTime.now()); // format = 2022-W01-4 System.out.println("format = " + format);
輸出:
format = 公元 2022年1月7日 +08:00 Asia/Shanghai
表格給你整理好瞭,你試一試:
到此這篇關於Java新API的時間格式化的文章就介紹到這瞭,更多相關Java格式化內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 詳解Java關於JDK中時間日期的API
- Java 8 Time Api 使用方法技巧
- Java技能點之SimpleDateFormat進行日期格式化問題
- 一篇文章弄懂Java8中的時間處理
- Java8的DateTimeFormatter與SimpleDateFormat的區別詳解