日期类型的值按 1 个月递增

Value of Date type is getting icremented by 1 month

我正在尝试获取日期类型的变量。但是我得到的输出会自动增加一个月。 这是我正在做的

Date d1 = new Date(2020,8,15);
System.out.println(d1);

d1 的值即将 2020-09-15 而不是 2020-08-15

Date 需要几个月从 0 到 11 而不是 1 到 12。所以,new Date(2020,08,15); 实际上是 15th September 2020

当日期为 printed/formatted 时,将打印实际月份(值 1 到 12)。 根据docs

A month is represented by an integer from 0 to 11; 0 is January, 1 is February, and so forth; thus 11 is December.

注意 :总是更喜欢 java.time API 而不是 java.util.Date

不幸的是,月份值从 0 开始,这使得使用过时的 API(例如 java.util.Date)时 8 为九月。

这意味着要获得所需的输出,您必须编写(不带前导零)

Date d1 = new Date(2020, 9, 15);
System.out.println(d1);

幸运的是,现在有 java.time

你可以这样使用它

public static void main(String[] args) {
    LocalDate d1 = LocalDate.of(2020, 8, 15);
    System.out.println(d1);
}

它输出

2020-08-15