Java 的SimpleDateFormat yyyy和YYYY的區別
阿新 • • 發佈:2019-01-08
最近有一個功能是對輸入的日期格式化,設計給出的範例是 YYYY-MM-dd HH:mm:ss,於是我簡單驗證了一下是可以的,然後就這麼在手冊裡寫了。然後偶然發現有地方也用yyyy啊,這個到底有神馬區別啊,還是隨便用呢。看了下jdk,這麼說的:
也就是說Y表示的是Week year,可是,這個Week year又是什麼。。jdk文件貼心地給出了Examples,然而並沒有什麼卵用。。
經過試驗,得出的結果如下:Week year意思是當天所在的周屬於的年份,一週從週日開始,週六結束,只要本週跨年,那麼這周就算入下一年。
如2019.1.1,日曆長成這樣:
1.1 所在的周的最後一天是2011.1.5,這天屬於2019,所以2019.1.1的Week year就是2019,用YYYY做格式化,就會得到2019.1.1。
試驗程式碼,取八天前的日期
public static void main(String[] args){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String str1=sdf.format(new Date(new Date().getTime() )); String str2=sdf.format(new Date(new Date().getTime() - (86400000 * 8))); System.out.println(str1); System.out.println(str2); print("---------我是分割線-------------"); SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd"); str1=sdf2.format(new Date(new Date().getTime() )); str2=sdf2.format(new Date(new Date().getTime() - (86400000 * 8))); System.out.println(str1); System.out.println(str2); } }
執行結果:
結論:僅僅是想格式化我們普通人認識的日期,用"yyyy-MM-dd HH:mm:ss" 就夠了。YYYY什麼的,沒事就不要用了啊。
---------------------
原文:https://blog.csdn.net/bewilderment/article/details/48391717