Java GregorianCalendar我做错了什么?错误的日期?
问题描述:
你好,我有一个GregorianCalendar的问题。Java 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意味7月。
答
这是因为月份数字为零,所以你试图设置6月31日,但6月只有30天,所以它被转换为7月1日。