Java GregorianCalendar私は何を間違っているのですか?間違った日付?
-
05-10-2019 - |
質問
こんにちは私はグレゴリアンカレンダーに問題があります。
そこに何が悪いのですか?
2010/6/1ではなく2010/6/1ではどのように結果がありますか?
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)
7月の意味は6つあります。
他のヒント
これは、月数がゼロベースであるため、6月31日を設定しようとしているためですが、6月はわずか30日であるため、7月1日に変換されます。
6月には31日目がないので、上記の答えが次の有効な日に宣伝されているので、 calendar.setlenient デフォルトでは真です。
所属していません StackOverflow