[英]Java GregorianCalendar What am I doing wrong? Wrong date?
您好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日。
Toadd得到上述答案,因為6月份沒有第31天日歷將其提升到下一個有效日期,因為Calendar.setLenient默認為true。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.