1. 程式人生 > >Java 的SimpleDateFormat yyyy和YYYY的區別

Java 的SimpleDateFormat yyyy和YYYY的區別

最近有一個功能是對輸入的日期格式化,設計給出的範例是 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