无法设置 GregorianCalendar 月份和日期
Unable to set GregorianCalendar Month and Date
我正在尝试设置公历的月份和日期:
GregorianCalendar startCalendar = new GregorianCalendar();
startCalendar.set(GregorianCalendar.MONTH, 3);
System.out.println(startCalendar.MONTH);
startCalendar.set(GregorianCalendar.DATE, 9);
System.out.println(startCalendar.DATE);
输出为:
2
5
我使用哪个数字似乎并不重要(即,如果我替换 3 和 9),它始终具有相同的输出
参考文献:
MONTH
和 DATE
是字段编号,不是字段的实际值。您应该使用 get()
方法来获取数字集。
GregorianCalendar startCalendar = new GregorianCalendar();
startCalendar.set(GregorianCalendar.MONTH, 3);
System.out.println(startCalendar.get(GregorianCalendar.MONTH));
startCalendar.set(GregorianCalendar.DATE, 9);
System.out.println(startCalendar.get(GregorianCalendar.DATE));
startCalendar.MONTH
等同于 Calendar.MONTH
, and is a static field declared in the Calendar
class 为:
public final static int MONTH = 2;
要从日历中获取月份,您需要调用 get()
:
startCalendar.get(Calendar.MONTH)
请注意,您应该始终通过 actual class 声明它们来限定静态字段(例如 Calendar.MONTH
),永远不要通过引用变量(例如 startCalendar.MONTH
) 并且永远不会被 subclass (例如 GregorianCalendar.MONTH
).
所以,您的代码应该是:
GregorianCalendar startCalendar = new GregorianCalendar();
startCalendar.set(Calendar.MONTH, 3);
System.out.println(startCalendar.get(Calendar.MONTH));
startCalendar.set(Calendar.DATE, 9);
System.out.println(startCalendar.get(Calendar.DATE));
我正在尝试设置公历的月份和日期:
GregorianCalendar startCalendar = new GregorianCalendar();
startCalendar.set(GregorianCalendar.MONTH, 3);
System.out.println(startCalendar.MONTH);
startCalendar.set(GregorianCalendar.DATE, 9);
System.out.println(startCalendar.DATE);
输出为:
2
5
我使用哪个数字似乎并不重要(即,如果我替换 3 和 9),它始终具有相同的输出
参考文献:
MONTH
和 DATE
是字段编号,不是字段的实际值。您应该使用 get()
方法来获取数字集。
GregorianCalendar startCalendar = new GregorianCalendar();
startCalendar.set(GregorianCalendar.MONTH, 3);
System.out.println(startCalendar.get(GregorianCalendar.MONTH));
startCalendar.set(GregorianCalendar.DATE, 9);
System.out.println(startCalendar.get(GregorianCalendar.DATE));
startCalendar.MONTH
等同于 Calendar.MONTH
, and is a static field declared in the Calendar
class 为:
public final static int MONTH = 2;
要从日历中获取月份,您需要调用 get()
:
startCalendar.get(Calendar.MONTH)
请注意,您应该始终通过 actual class 声明它们来限定静态字段(例如 Calendar.MONTH
),永远不要通过引用变量(例如 startCalendar.MONTH
) 并且永远不会被 subclass (例如 GregorianCalendar.MONTH
).
所以,您的代码应该是:
GregorianCalendar startCalendar = new GregorianCalendar();
startCalendar.set(Calendar.MONTH, 3);
System.out.println(startCalendar.get(Calendar.MONTH));
startCalendar.set(Calendar.DATE, 9);
System.out.println(startCalendar.get(Calendar.DATE));