"yyyy/mm/dd" 和 "yyyy/mm/DD" 的不同结果

Different result of "yyyy/mm/dd" and "yyyy/mm/DD"

我知道要接收日期,我必须使用此代码 dd 小写:

DateFormat dateFormat0 = new SimpleDateFormat("yyyy/mm/dd HH:MM:SS");
Date dateNow0 = new Date();
System.out.println("Date format: " + dateFormat0.format(dateNow0));

输出为:

日期格式:2016/28/06 09:03:493

但是当我在日期格式中使用大写 DD 时。代码:

DateFormat dateFormat1 = new SimpleDateFormat("yyyy/mm/DD HH:MM:SS");
Date dateNow1 = new Date();
System.out.println("Date format: " + dateFormat1.format(dateNow1));

输出为:

日期格式:2016/28/66 09:03:494

为什么我使用大写 'DD' 而不是 'dd' 得到不同的结果? 'DD'的结果代表什么?

D 是一年中的第几天 (1-365)
d 是月中的第几天 (1-31)

请参阅 SimpleDateFormat 上的文档:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

Java7中的正确解法代码是:

    DateFormat dateFormat3 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    System.out.println(dateFormat3.format(cal.getTime()));

并在 Java 8:

    LocalDateTime localDateTime = LocalDateTime.now();
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
    String text = localDateTime.format(formatter);
    System.out.println(text);