最近犯了個可傻逼的錯誤,格式化年月日的時候不小心將yyyy-MM-dd寫成YYYY-MM-dd,導致格式化結果中年不正確。
看看知乎上的說法
問題:
http://www.zhihu.com/question/23730083
其中一個回答:
著作權歸作者所有。
商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
作者:馬小明
鏈接:http://www.zhihu.com/question/23730083/answer/25475256
來源:知乎
商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
作者:馬小明
鏈接:http://www.zhihu.com/question/23730083/answer/25475256
來源:知乎
yyyy-MM-dd HH:mm:ss
年-月-日 時:分:秒
大寫是為了區分“ 月”與“ 分”
順便說下HH為什么大寫,是為了區分 12小時制與 24小時制。
小寫的h是12小時制,大寫的H是24小時制。
書寫格式和語言規定有關,上述寫法是Windows系統中的我們常見的寫法,包括日期設置於辦公軟件在內。在其他語言中有類似的但使用符號或格式不同的寫法。
有的時候我們會看到這樣的格式:yyyy-M-d H:m:s
mm與m等,它們的區別為 是否有前導零:H,m,s表示 非零開始,HH,mm,ss表示 從零開始。
比如凌晨1點2分,HH:mm顯示為 01:02,H:m顯示為 1:2。
以2014年1月1日凌晨1點1分1秒(當天是星期三)為例子介紹一下其他的:
yyyy/yyy/yy/y 顯示為 2014/2014/14/4
(3個y與4個y是一樣的,為了便於理解多寫成4個y)
MMMM/MMM/MM/M 顯示為 一月/一月/01/1
(4個M顯示全稱,3個M顯示縮寫,不過中文顯示是一樣的,英文就是January和Jan)
dddd/ddd/dd/d 顯示為 星期三/周三(有的語言顯示為“三”) /01/1
(在英文中同M一樣,4個d是全稱,3個是簡稱;
dddd/ddd表示星期幾,dd/d表示幾號)
HH/H/hh/h 顯示為 01/1/01 AM/1 AM
剩下的 mm/m/ss/s只是前導零的問題了。
yyyy/M/d/dddd H:mm:ss 就是 2014年1月1日星期三 1:01:01
年-月-日 時:分:秒
大寫是為了區分“ 月”與“ 分”
順便說下HH為什么大寫,是為了區分 12小時制與 24小時制。
小寫的h是12小時制,大寫的H是24小時制。
書寫格式和語言規定有關,上述寫法是Windows系統中的我們常見的寫法,包括日期設置於辦公軟件在內。在其他語言中有類似的但使用符號或格式不同的寫法。
有的時候我們會看到這樣的格式:yyyy-M-d H:m:s
mm與m等,它們的區別為 是否有前導零:H,m,s表示 非零開始,HH,mm,ss表示 從零開始。
比如凌晨1點2分,HH:mm顯示為 01:02,H:m顯示為 1:2。
以2014年1月1日凌晨1點1分1秒(當天是星期三)為例子介紹一下其他的:
yyyy/yyy/yy/y 顯示為 2014/2014/14/4
(3個y與4個y是一樣的,為了便於理解多寫成4個y)
MMMM/MMM/MM/M 顯示為 一月/一月/01/1
(4個M顯示全稱,3個M顯示縮寫,不過中文顯示是一樣的,英文就是January和Jan)
dddd/ddd/dd/d 顯示為 星期三/周三(有的語言顯示為“三”) /01/1
(在英文中同M一樣,4個d是全稱,3個是簡稱;
dddd/ddd表示星期幾,dd/d表示幾號)
HH/H/hh/h 顯示為 01/1/01 AM/1 AM
剩下的 mm/m/ss/s只是前導零的問題了。
yyyy/M/d/dddd H:mm:ss 就是 2014年1月1日星期三 1:01:01