您好,我对Gregoriancalendar有问题。

那里有什么问题?

2010/6/1而不是2010/05/31的结果如何?

package test;

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

public class Main {

    public static void main(String[] args) {
        Calendar cal = new GregorianCalendar(2010, 5, 31);
        System.out.println(cal.get(Calendar.YEAR) + "/" + cal.get(Calendar.MONTH) + "/" + cal.get(Calendar.DAY_OF_MONTH));
    }

}
有帮助吗?

解决方案

Java数为0的数月,所以5是6月。使用常数总是更安全的。所以我会写:

Calendar cal = new GregorianCalendar(2010, Calendar.MAY, 31);

同样的日历打印也适用。如果你这样做 cal.get(Calendar.MONTH) 您获得6个七月的含义。

其他提示

这是因为月号为零,因此您试图设置6月31日,但六月只有30天,因此将其转换为7月1日。

蟾蜍对上述答案,因为六月没有第31天,日历将其推广到下一个有效的一天,因为 calendar.setLenient 默认情况下是正确的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top