小编Mic*_*chi的帖子

为什么 java.util.Calendar 在 2021 年 2 月返回 31?

以下代码段返回:

28
31
Run Code Online (Sandbox Code Playgroud)

我想不通,为什么。我尝试通过两种方式将日历对象设置为 2021 年 2 月,我做错了什么?月份是从零开始的,所以二月是“1”。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class HelloWorld{

     public static void main(String []args){
        Calendar g = new GregorianCalendar(2021, 1, 28);
        System.out.println(g.getActualMaximum(Calendar.DAY_OF_MONTH));
        

        int year = 2021;
        int month = 1;
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month);
        System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH));
     }
}
Run Code Online (Sandbox Code Playgroud)

或者这只会发生,因为我在 3 月 29、30 或 31 日调用 Calendar.getInstance() 而我没有调用

c.set(Calendar.DAY_OF_MONTH, {any day below 29});
Run Code Online (Sandbox Code Playgroud)

java calendar date java-time

1
推荐指数
2
解决办法
367
查看次数

标签 统计

calendar ×1

date ×1

java ×1

java-time ×1