[java 2019-12-16] SimpleDateFormat格式化跨年顯示格式錯誤


使用SimpleDateFormat格式化時發現顯示年份比實際年份多一年,這是因為yyyy和YYYY格式化時表示的含義是不同的,yyyy表示實際年份,YYYY表示Week year,Week year意思是當天所在的周屬於的年份,一周從周日開始,周六結束,只要本周跨年,那么這周就算入下一年。

代碼如下:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {

    public static void main(String[] args) {

        String pattern1 = "yyyy-MM-dd";
        String pattern2 = "YYYY-MM-dd";
        Date date = new Date(119,11,30); //2019.12.30
        SimpleDateFormat sdf1 = new SimpleDateFormat(pattern1);
        SimpleDateFormat sdf2 = new SimpleDateFormat(pattern2);
        String date1 = sdf1.format(date);
        String date2 = sdf2.format(date);
        System.out.println("date1:"+pattern1+"\t"+date1);
        System.out.println("date2:"+pattern2+"\t"+date2);


    }
}

結果:

 

 覺得這個YYYY似乎沒什么用,只有坑。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM