YYYY與yyyy的區別

記於19年12月31日,支付報日期不在有效範圍內,查看日誌發現顯示的時間爲2020年12月31日。

//使用Date
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("當前時間:" + sdf.format(d));
字母 含義 示例
y 年份。一般用 yy 表示兩位年份,yyyy 表示 4 位年份 使用 yy 表示的年扮,如 11;
使用 yyyy 表示的年份,如 2011
M 月份。一般用 MM 表示月份,如果使用 MMM,則會
根據語言環境顯示不同語言的月份
使用 MM 表示的月份,如 05;
使用 MMM 表示月份,在 Locale.CHINA
語言環境下,如“十月”;在 Locale.US
語言環境下,如 Oct
d 月份中的天數。一般用 dd 表示天數 使用 dd 表示的天數,如 10
D 年份中的天數。表示當天是當年的第幾天, 用 D 表示 使用 D 表示的年份中的天數,如 295
E 星期幾。用 E 表示,會根據語言環境的不同, 顯示不
同語言的星期幾
使用 E 表示星期幾,在 Locale.CHINA 語
言環境下,如“星期四”;在 Locale.US 語
言環境下,如 Thu
H 一天中的小時數(0~23)。一般用 HH 表示小時數 使用 HH 表示的小時數,如 18
h 一天中的小時數(1~12)。一般使用 hh 表示小時數 使用 hh 表示的小時數,如 10 (注意 10 有
可能是 10 點,也可能是 22 點)
m 分鐘數。一般使用 mm 表示分鐘數 使用 mm 表示的分鐘數,如 29
s 秒數。一般使用 ss 表示秒數 使用 ss 表示的秒數,如 38
S 毫秒數。一般使用 SSS 表示毫秒數 使用 SSS 表示的毫秒數,如 156

而我使用的大寫的YYYY,導致年前的時間錯了一年。

 YYYY,week-based year 是 ISO 8601 規定的,19年12月30日這一週已經算是2020年了,29日還是19年,而使用小寫的yyyy不會出現這種情況,當然dd和DD也有區別。

發佈了159 篇原創文章 · 獲贊 109 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章