Java時間格式化時YYYY(大寫)和yyyy(小寫)的區別


在Java中,我們大多數情況下格式日期都是用的SimpleDateFormat,比如說把一個日期格式成"yyyy-MM-dd"的形式。

我們要注意的是,對於年份來說,大寫的Y和小寫的y其意義是不同的。

y 是Year,  Y 表示的是Week year

經過試驗,得出的結果如下:Week year 意思是當天所在的周屬於的年份,一周從周日開始,周六結束,只要本周跨年,那么這周就算入下一年。

package time;

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

/**
 * Created by sheting on 10/20/2017
 */
public class Test {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        // 2014-12-31
        calendar.set(2014, Calendar.DECEMBER, 31);
        Date strDate1 = calendar.getTime();
        // 2015-01-01
        calendar.set(2015, Calendar.JANUARY, 1);
        Date strDate2 = calendar.getTime();
        // 大寫YYYY
        DateFormat formatUpperCase = new SimpleDateFormat("YYYY/MM/dd");
        System.out.println("2014-12-31 to YYYY/MM/dd: " + formatUpperCase.format(strDate1)); //2014-12-31 to YYYY/MM/dd: 2015/12/31
        System.out.println("2015-01-01 to YYYY/MM/dd: " + formatUpperCase.format(strDate2)); //2015-01-01 to YYYY/MM/dd: 2015/01/01
        // 小寫YYYY
        DateFormat formatLowerCase = new SimpleDateFormat("yyyy/MM/dd");
        System.out.println("2014-12-31 to yyyy/MM/dd: " + formatLowerCase.format(strDate1)); //2014-12-31 to yyyy/MM/dd: 2014/12/31
        System.out.println("2015-01-01 to yyyy/MM/dd: " + formatLowerCase.format(strDate2)); //2015-01-01 to yyyy/MM/dd: 2015/01/01
    }
}


免責聲明!

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



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