Java中DateTimeFormatter的使用方法和案例
作用
1.本地化時間
本地化時間指根據(jù)指定的語言環(huán)境顯示時間
1.1.創(chuàng)建DateTimeFormatter時指定Locale
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);
1.2.使用該DateTimeFormatter格式化日期時間
LocalDate date = LocalDate.now(); String cnDate = date.format(formatter); 這樣就可以得到適合中國需求的日期格式"2021-10-01"。
1.3.可以通過Locale.US、Locale.UK等地區(qū),從而得到不同格式
DateTimeFormatter usFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy", Locale.US); DateTimeFormatter ukFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy", Locale.UK); LocalDate date = LocalDate.now(); String usDate = date.format(usFormatter); // 10/01/2021 String ukDate = date.format(ukFormatter); // 01/10/2021
1.4.使用預定義的格式化常量指定地區(qū)
LocalDate date = LocalDate.now(); String cnDate = date.format(FormatStyle.LONG, Locale.CHINA); String frDate = date.format(FormatStyle.FULL, Locale.FRANCE);
2.ISO/RFC規(guī)范格式
ISO和RFC定義了標準的日期時間格式,可以直接使用:
LocalDate date = LocalDate.now(); // ISO格式 String isoDate = date.format(ISO_LOCAL_DATE); // RFC格式 String rfcDate = date.format(RFC_1123_DATE_TIME);
格式名稱 | 描述 | 格式 | 示例 |
---|---|---|---|
BASIC_ISO_DATE | 基本ISO日期 | yyyyMMdd | 20111203 |
ISO_LOCAL_DATE | ISO本地化日期 | yyyy-MM-dd | 2011-12-03 |
ISO_OFFSET_DATE | 帶偏移時區(qū)的ISO日期 | yyyy-MM-ddXX | 2011-12-03+01:00 |
ISO_DATE | ISO 日期,可能帶偏移量 | yyyy-MM-dd 或者 yyyy-MM-ddXX | 2011-12-03+01:00’;2011-12-03 |
ISO_LOCAL_TIME | ISO本地化時間 | HH:mm:ss | 10:15:30 |
ISO_OFFSET_TIME | 帶偏移時區(qū)的ISO時間 | HH:mm:ssXX | 10:15:30+01:00 |
ISO_TIME | ISO時間,可能帶偏移量 | HH:mm:ss 或者 HH:mm:ssXX | 10:15:30+01:00;10:15:30 |
ISO_LOCAL_DATE_TIME | ISO本地日期和時間 | yyyy-MM-dd’T’HH:mm:ss | 2011-12-03T10:15:30 |
ISO_OFFSET_DATE_TIME | 帶偏移時區(qū)的ISO日期 | yyyy-MM-dd’T’HH:mm:ssXX | 2011-12-03T10:15:30+01:00 |
ISO_ZONED_DATE_TIME | 帶時區(qū)的ISO日期和時間 | yyyy-MM-dd’T’HH:mm:ssZZZZ | 2011-12-03T10:15:30+01:00 |
ISO_DATE_TIME | 帶Zoneld的ISO日期和時間 | yyyy-MM-dd’T’HH:mm:ssxxx | 2011-12-03T10:15:30+01:00 |
ISO_ORDINAL_DATE | 年份和一年的第N天 | yyyy-DDD | 2012-337 |
ISO_WEEK_DATE | 年份-第N周-周N | xxxx-'W’ww-e | 2012-W48-6 |
ISO_INSTANT | ISO時刻 | 2011-12-03T10:15:30Z | |
RFC_1123_DATE_TIME | RFC 1123/RFC 822 | Tue, 3 Jun 2008 11:05:30 GMT |
3.范式格式化
常見格式化:
年份:
YYYY
:4位數(shù)字表示的年份,例如:2023yyyy
:4位數(shù)字表示的年份,例如:2023YY
:2位數(shù)字表示的年份,例如:23
月份:
MM
:2位數(shù)字表示的月份,例如:01表示一月,12表示十二月MMM
:縮寫形式的月份,例如:Jan表示一月,Dec表示十二月MMMM
:完整形式的月份,例如:January表示一月,December表示十二月
日:
DD
dd
:2位數(shù)字表示的日期,例如:01表示1號,31表示31號
星期幾:
ddd
:縮寫形式的星期幾,例如:Mon表示星期一,Sun表示星期日dddd
:完整形式的星期幾,例如:Monday表示星期一,Sunday表示星期日
時間:
HH
:24小時制的小時,例如:00表示午夜12點,23表示晚上11點hh
:12小時制的小時,例如:01表示上午1點,12表示下午12點mm
:分鐘,例如:00表示整點,30表示30分鐘ss
:秒,例如:00表示整分,59表示59秒a
:上午/下午標識,例如:AM表示上午,PM表示下午
參數(shù)列表整理:
符號 | 含義 | 示例 |
---|---|---|
G | 顯示紀元文本 | AD(公元) |
u | 年份 | 2023 |
У | 公元年份 | 2023 |
D | 一年的第N天 | 300 |
M或者L | 月份 | 7;07; Jul; July; |
d | 一個月的第N目 | 9 |
Q或者q | 年份中的季度 | 2; 02; Q2; 2rd quarter |
Y | 以周為基礎(chǔ)的年份 | 1997;97 |
w | 以周為基礎(chǔ)的年份中的周 | 30 |
W | 一個月的第N周 | 3 |
E | 星期 | Tue; Tuesday; T |
e或者c | 本地化星期 | 2; 02; Tue; Tuesday; T |
F | 一個月的第N周 | 2 |
a | 一天中的上午(am)或者下午(pm) | PM |
h | 上午下午12小時制(1-12) | 10 |
K | 上午下午11小時制(1-11) | 1 |
k | 上午下午(1-24) | 14 |
H | 小時制(0-23) | 1 |
m | 小時中的分鐘 | 30 |
s | 分秒 | 43 |
S | 當前秒的毫秒 | 800 |
A | 當前天的毫秒數(shù) | 1111 |
n | 當前秒的納秒數(shù) | 987654321 |
N | 當前天的納秒數(shù) | 1234000000 |
V | 時區(qū)ID | America/Los_Angeles; Z; -08:30 |
z | 時區(qū)名稱 | Pacific Standard Time; PST |
O | 本地化時區(qū)漂移 | GMT+8; GM T+08:00; UTC-08:00 |
X | offset-X | Z; -08; -0830; -08:30; -083015; -08:30:15 |
x | offset-x | +0000; -08; -0830; -08:30; -083015; -08:30:15 |
Z | offset-Z | +0000; -0800; -08:00; |
p | pad modifier | 1 |
’ | 分隔符 | |
‘’ | 不被解析的文字 | |
[ | 可選部分開始 | |
] | 可選部分結(jié)束 |
示例:
String pattern = "G uuuu'年'MMMd'日' ZZZZZ VV"; String format= DateTimeFormatter.ofPattern(pattern).format(ZonedDateTime.now()); System.out.println(format);
格式化結(jié)果顯示:
公元 2023年10月01日 +08:00 Asia/hangzhou
范式格式化還提供了一些常用的格式化模式:
LocalDateTime dt = LocalDateTime.now(); // SHORT范式格式化 String shortDt = dt.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)); // MEDIUM范式格式化 String mediumDt = dt.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM));
寫在最后
以上就是Java中DateTimeFormatter的使用方法和案例的詳細內(nèi)容,更多關(guān)于Java DateTimeFormatter使用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之查找
本文主要介紹了Java數(shù)據(jù)結(jié)構(gòu)中查找的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧2017-03-03詳解Java多態(tài)對象的類型轉(zhuǎn)換與動態(tài)綁定
這篇文章主要介紹了詳解Java多態(tài)對象的類型轉(zhuǎn)換與動態(tài)綁定,是Java入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09java ReentrantLock條件鎖實現(xiàn)原理示例詳解
這篇文章主要為大家介紹了java ReentrantLock條件鎖實現(xiàn)原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01SpringBoot Redis實現(xiàn)接口冪等性校驗方法詳細講解
這篇文章主要介紹了SpringBoot Redis實現(xiàn)接口冪等性校驗方法,近期一個老項目出現(xiàn)了接口冪等性校驗問題,前端加了按鈕置灰,依然被人拉著接口參數(shù)一頓輸出,還是重復調(diào)用了接口,通過復制粘貼,完成了后端接口冪等性調(diào)用校驗2022-11-11如何使用stream從List對象中獲取某列數(shù)據(jù)
這篇文章主要介紹了如何使用stream從List對象中獲取某列數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12SpringBoot整合Spring Security構(gòu)建安全的Web應(yīng)用
pring Security是一個強大的身份驗證和訪問控制框架,本文主要介紹了SpringBoot整合Spring Security構(gòu)建安全的Web應(yīng)用,具有一定的參考價值,感興趣的可以了解一下2024-01-01