2012-10-26 1089 views
2

我傳遞「1月」,「2月」等...作爲整數數據庫我需要通過1-12相應的月份,但我得到0從-11日曆需要得到字符串月作爲int

這是林怎麼做,請幫我捏捏這得到個月1-12代替爲0-11

//Get month as an integer. 
Date date = new SimpleDateFormat("MMM", Locale.ENGLISH).parse(stringMonth); 
Calendar cal = Calendar.getInstance(); 
cal.setTime(date); 
int month = cal.get(Calendar.MONTH); 
System.out.println("month ==" + month); 

回答

9
int month = cal.get(Calendar.MONTH) + 1; 

日曆的一個月0索引(一月= 0)。就像上面的代碼看起來那麼奇怪,它在Java中很常見,因爲Calendar中的月份索引相當奇怪。

這個帖子有這個話題的討論:Why is January month 0 in Java Calendar

+0

Thanx爲快速回復 –

+0

+1來翻轉範圍' 0,11]'到'[1,12]'的範圍內,你需要'+ 1' –

1

這是因爲Calendar類從[0-11]使用Month指數

因此,要從[1-12]獲得索引,您可以加1所獲得的索引: -

int month = cal.get(Calendar.MONTH) + 1; 
+0

感謝您的回覆..... –

+0

不客氣:) –

1

要麼改變:

int month = cal.get(Calendar.MONTH) + 1; 

System.out.println("month ==" + (month) + 1) ; 

(但不要做他們兩個!)

這會在您的month的所代表的位置上添加1的「偏移量」,因此將它從0-11移到1-12 =)