java日期格式化YYYY-MM-dd遇坑指南小結

前幾天寫日期格式化工具類,自己做測試的時候,無意中發現一個問題,如果把format參數設置成YYYY-MM-DD,輸出的結果很奇怪。

Date result1 = string2Date("2016-12-15", "yyyy-MM-dd");
System.out.println(result1);
Date result2 = string2Date("2016-12-15", "YYYY-MM-DD");
System.out.println(result2);
 
Date date1 = new Date();
System.out.println(date2String(date1, "yyyy-MM-dd"));
System.out.println(date2String(date1, "YYYY-MM-DD"));

結果:

Thu Dec 15 00:00:00 CST 2016
Sun Dec 27 00:00:00 CST 2015
2016-12-20
2016-12-355

第一種情況下,明明是2016年的日期,轉完格式變成瞭2015年。。。我去
試驗版本jdk1.7,我看有些文章說,y是year,Y是week year,比如:

開發中還是用yyyy-MM-dd來做日期格式化,其它的就不要用瞭。

yyyy-MM-dd HH:mm:ss
年-月-日 時:分:秒

大寫是為瞭區分“ 月”與“ 分”

順便說下HH為什麼大寫,是為瞭區分 12小時制與 24小時制。
小寫的h是12小時制,大寫的H是24小時制

有的時候我們會看到這樣的格式:yyyy-M-d H:m:s
mm與m等,它們的區別為 是否有前導零:H,m,s表示 非零開始,HH,mm,ss表示 從零開始。
比如凌晨1點2分,HH:mm顯示為 01:02,H:m顯示為 1:2

到此這篇關於java日期格式化YYYY-MM-dd遇坑指南小結的文章就介紹到這瞭,更多相關java YYYY-MM-dd內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: