2013-10-05 30 views
1

我正在使用日曆API來處理日期。這是我正在嘗試的代碼片段。使用日曆對象時獲取月份時出錯

Date date=new SimpleDateFormat("dd/mm/yyyy").parse("05/10/2013"); 
       Calendar cal=Calendar.getInstance(); 
       cal.setTime(date); 
       int month=cal.get(Calendar.MONTH); 

在這裏,我應該得到每月9(10月),但它返回0(一月)。即使我換日期,它仍然返回0(一月)。 這是爲什麼發生?請幫幫我。

回答

2

使用MM代替mmm給出小時和分鐘獲得月利用資本M

Date date=new SimpleDateFormat("dd/MM/yyyy").parse("05/10/2013"); 
Calendar cal=Calendar.getInstance(); 
cal.setTime(date); 
int month=cal.get(Calendar.MONTH); 
System.out.println("" + month); 

輸出:

9 

Java Docs

enter image description here

+0

-1OP正試圖獲得月份。按照每個問題,OP應該得到9,但它得到0.在你的方式,它會得到1; – SpringLearner

+0

刪除downvote – SpringLearner

+1

偉大@ Tarsem.I真的很困惑。明白了。謝謝。 –

2

MM而不是mm在給定的日期格式。 M指定月份,而m根據java doc指定分鐘。

Date date=new SimpleDateFormat("dd/MM/yyyy").parse("05/10/2013") 
    Calendar cal=Calendar.getInstance(); 
       cal.setTime(date); 
       int month=cal.get(Calendar.MONTH); // add +1 for correct month(10) otherwise it will be 9 
+0

很好的回答,+ 1 – SpringLearner

+0

@javaBeginner謝謝:) – Sage

+0

非常感謝@ Sage.Now它正確的返回。 –