2016-03-20 41 views
0

我試着去公曆的月份和日期設置:無法設置GregorianCalendar的月份和日期

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

參考文獻(即,如果我更換3和9):

MONTHDATE的場數,不屬於域的實際值。您應該使用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)); 
0

startCalendar.MONTH相同Calendar.MONTH,是一個靜態字段declaredCalendar類爲:

public final static int MONTH = 2; 

從日曆獲得一個月,你需要調用get()

startCalendar.get(Calendar.MONTH) 

請注意,您應始終通過實際限定靜態字段類聲明它們(例如(例如Calendar.MONTH),從不由參考變量(例如startCalendar.MONTH)決定而決不由子類決定(例如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)); 
相關問題