Java 打印日期/時間格式處理日期,時間和日期時間值。
Java 打印日期/時間格式可以應(yīng)用于格式值為long,Long,java.util.Calendar,java.util.Date,和java.time.temporal.TemporalAccessor類型。
長類型中的值解釋為自1970年1月1日午夜UTC之后過去的毫秒數(shù)。
t大寫變量T轉(zhuǎn)換字符用于格式化日期/時間值。
日期/時間格式化的一般語法如下:
%<argument_index$><flags><width><conversion>
精度不適用于日期/時間格式。
對于日期/時間格式,轉(zhuǎn)換是一個雙字符序列。 第一個字符總是't'或'T'。 第二個字符,稱為轉(zhuǎn)換后綴,確定日期/時間參數(shù)的格式。
下表包含時間格式的后綴字符
后綴 | 含義 |
---|---|
H | 將時間格式設(shè)置為24小時制時鐘的兩位數(shù)小時。 有效值為00到23. 00用于午夜。 |
I | 格式化12小時制時鐘的一位兩位數(shù)小時。 有效值為01到12。 |
k | 格式化時間與H后綴相同,除了它不向輸出添加前導(dǎo)零。 有效值為0到23。 |
l | 格式化時間與“I"后綴相同,除了它不添加前導(dǎo)零。 有效值為1到12。 |
M | 一小時內(nèi)兩位數(shù)的分鐘。 有效值為00到59。 |
S | 一個兩位數(shù)的秒。 有效值為00到60。 |
L | 一個三位數(shù)毫秒。 有效值為000到999。 |
N | 一個九位數(shù)的納秒。 有效值為000000000至999999999。 |
p | 使用小寫格式化特定于語言環(huán)境的上午或下午字符串。對于美國地區(qū),“am"或“pm"。 要獲取“AM"和“PM",請使用大寫變量“T"作為轉(zhuǎn)換字符。 |
z | 輸出與GMT的數(shù)值時區(qū)偏移(例如,+0530)。 |
Z | 輸出時區(qū)的字符串縮寫(例如,CST,EST,IST等)。 |
s | 輸出秒自1970年1月1日午夜UTC。 |
Q | 自1970年1月1日午夜UTC以來的輸出毫秒數(shù)。 |
日期格式化的后綴字符的下表列表
信 | 含義 |
---|---|
B | 在美國語言環(huán)境中輸出本地特定的月份全名,例如“一月",“二月"。 |
b | 輸出特定于語言環(huán)境的縮寫月份名稱,例如美國語言環(huán)境中的“Jan",“Feb"。 |
h | 與“b"相同。 輸出特定于語言環(huán)境的縮寫月份名稱,例如美國語言環(huán)境中的“Jan",“Feb"。 |
A | 輸出一周中某天的特定于地區(qū)的全名,例如美國地區(qū)的“星期日”,“星期一”。 |
a | 輸出一周中某天的特定于語言環(huán)境的短名稱,例如美國語言環(huán)境的“Sun",“Mon"。 |
C | 將四位數(shù)年份除以100,并將結(jié)果格式化為兩位數(shù)。 如果結(jié)果數(shù)字為一位數(shù),它將添加一個前導(dǎo)零。 有效值為00到99.例如,如果四位數(shù)年份是2014,則它將輸出20。 |
Y | 如果年份包含少于四位數(shù),則輸出帶有前導(dǎo)零的四位數(shù)年份。 |
y | 輸出年份的最后兩位數(shù)字,如有必要,添加前導(dǎo)零。 2011年將輸出11。 |
j | 一年中三位數(shù)的日期。 有效值為000到366。 |
m | 一個兩位數(shù)的月份。 有效值為01到13.需要13的特殊值來支持農(nóng)歷日歷。 |
d | 一個兩位數(shù)的日期。 有效值為01到31。 |
e | 每月的日期。 有效值為1到31。 |
下表列出了日期/時間格式的后綴字符
格式 | 描述 |
---|---|
R | 輸出時間以24小時時鐘格式為“小時:分鐘"。 它輸出與%tH:%tM相同。 示例:11:23 |
T | 以24小時制輸出時間,格式為“小時:分:秒"。 它輸出相同的“%tH:%tM:%tS"。 示例11:23:10 |
r | 以24小時制輸出時間,格式為“小時:分:秒"。 它輸出相同的“%tH:%tM:%tS"。 示例11:23:10... |
D | 輸出日期為“%tm /%td /%ty",例如“01/19/14" |
F | 輸出日期為“%tY-%tm-%td",如“2014-01-19"。 |
c | 將日期和時間輸出為“%ta%tb%td%tT%tZ%tY",例如“Wed Jan 20 12:22:06 CST 2014"。 |
以下代碼顯示如何使用日期時間格式化程序。 它在格式說明符中使用'<'標(biāo)志來重用參數(shù)中的值。
import java.time.LocalDateTime; import java.time.Month; import java.util.Locale; public class Main { public static void main(String[] args) { Locale englishUS = Locale.US; LocalDateTime ldt = LocalDateTime.of(2014, Month.JANUARY, 25, 11, 48, 16); System.out.printf(englishUS, "US: %tB %<te, %<tY %<tT %<Tp%n", ldt); } }
上面的代碼生成以下結(jié)果。
以下代碼格式化默認(rèn)語言環(huán)境中的當(dāng)前日期和時間。 它使用ZonedDateTime參數(shù),它保存當(dāng)前日期/時間與時區(qū)。
import java.time.ZonedDateTime; public class Main { public static void main(String[] args) { ZonedDateTime currentTime = ZonedDateTime.now(); System.out.printf("%tA %<tB %<te, %<tY %n", currentTime); System.out.printf("%TA %<TB %<te, %<tY %n", currentTime); System.out.printf("%tD %n", currentTime); System.out.printf("%tF %n", currentTime); System.out.printf("%tc %n", currentTime); System.out.printf("%Tc %n", currentTime); } }
上面的代碼生成以下結(jié)果。
更多建議: