Java Gregoriancalendar我在做什么错?日期错误?
-
05-10-2019 - |
题
您好,我对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 默认情况下是正确的。
不隶属于 StackOverflow