2014-12-02 63 views
-2

我使用Calendar c = Calendar.getInstance()來存儲當前日期。但是,當我嘗試查看我發現一個錯誤。Java中的日曆錯誤

c.get(Calendar.MONTH+1)是egual到49

爲什麼?

謝謝。

+5

您認爲'c.get(Calendar.MONTH + 1)'應該返回什麼?爲什麼? – 2014-12-02 16:57:16

回答

5

您通過+1的參數get

c.get(Calendar.MONTH) + 1 

會給你MONTHCalendar.MONTH + 1是3或Calendar.WEEK_OF_YEAR

+0

謝謝你解決我的問題! – user3253955 2014-12-02 17:26:22

2

Calendar.MONTH只是簡單地調用類Calendar中相應名稱MONTH的字段,它只是一個整數。展望Calendar類(和過濾掉一些文件),我們可以看到日曆的getset方法的定義如下:

public final static int ERA = 0; 
public final static int YEAR = 1; 
public final static int MONTH = 2; 
public final static int WEEK_OF_YEAR = 3; 
public final static int WEEK_OF_MONTH = 4; 
public final static int DATE = 5; 
etc... 
2

試試這個:

// using Calendar class 
Calendar ci = Calendar.getInstance(); 

String CiDateTime = "" + ci.get(Calendar.YEAR) + "-" + 
(ci.get(Calendar.MONTH) + 1) + "-" + 
ci.get(Calendar.DAY_OF_MONTH) + " " + 
ci.get(Calendar.HOUR) + ":" + 
ci.get(Calendar.MINUTE) + ":" + 
ci.get(Calendar.SECOND); 

代碼的輸出上面:

2014-12-2 10:46:56

+0

也許你應該說,'12'並不意味着'12月'。 – Tom 2014-12-02 17:25:14