Java时间格式化时YYYY(大写)和yyyy(小写)的区别

Posted 每天进步一点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
    }
}

以上是关于Java时间格式化时YYYY(大写)和yyyy(小写)的区别的主要内容,如果未能解决你的问题,请参考以下文章

把日期格式化yyyy年mm月dd日

simpleDateFormat 时间格式问题

多少人栽在 yyyy-MM-dd 上面了?

java如何yyyy-mm-dd格式转换成dd-mon-yy格式

java如何实现各国时间格式转换成yyyy-MM-dd HH:mm:ss时间格式?

日期格式化的时候mm和MM有啥区别;yyyy-MM-dd和yyyy-mm-dd 有啥区别yyyyMMddHHmmss