JAVA和SQL中時間的格式化 (yyyy-MM-dd HH:mm:ss轉換規則)知識總結

年(Year)、月(Month)、日(Day)、時(Hour)、分(Minute)、秒(Second) 分別爲時間基本單位。在Java和Oracle中的時間格式化轉換語法中分別用其首字母代表對應的單位。

例如:
yyyy-MM-dd 表示 : 年-月-日
yyyy-MM-dd HH:mm:ss 表示 : 年-月-日 時:分:秒

一、兩個首字母與單個首字母(XX與X的)的區別

在通常情況下M、D、H、m、s都是成對出現的(MM,dd,HH,mm,ss)
但是有時也會看到它們單獨存在(M,d,H,m,s)
它們的區別爲是否有前導零:M,d,H,m,s表示非零開始,MM,dd,HH,mm,ss表示從零開始。
如下2019年2月9日凌晨1點02分05秒在Java中不同的時間格式下的不同結果:

yyyy-M-d H:m:s          ----------------  2019-2-9 1:2:5
yyyy-MM-dd HH:mm:ss     ----------------  2019-02-09 01:02:05

二、大寫H與小寫h的區別(24小時制和12小時制的)

在Java中大寫的 “HH” 表示 24 小時制時間格式,小寫的 “hh” 表示12小時制的時間格式。
又因爲在SQL中不區分大小寫的緣故 ,“HH24”“hh24” 表示 24 小時制時間格式,“HH”“hh” 默認爲 12 小時制時間格式。

三、大寫M與小寫m的區別

因爲月(Month)和 分(Minute)首字母一樣的緣故,在Java中用 大寫的 “M”表示月,用小寫的“m”表示分鐘。
又因爲在SQL中不區分大小寫的緣故、“MM”“mm” 表示月,“MI”“mi” 表示分鐘。

四、大寫YYYY與小寫yyyy的區別

官方解釋:

“YYYY format” 是 “ISO week numbering system”
“yyyy format” 是 “Gregorian
Calendar” “YYYY specifies the week of the year (ISO) while yyyy
specifies the calendar year (Gregorian)"

意思就是yyyy爲Year,YYYY爲 Week Year。
總之,正常情況下如果希望按照日曆格式得到每天的日期字符的話,使用 “yyyy”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章