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”

你可能感兴趣的:(Java知识点总结)