2013-04-01 30 views
-1

我想明白爲什麼發生這種情況,我該如何解決這個小問題。 我希望能夠在提供日期,月份和年份後從java日曆實例中獲取星期編號。 如果我這樣做:日曆實例提供錯誤的星期編號當日歷與基本字段建成

Calendar cal=Calendar.getInstance(); 
     cal.set(Calendar.DAY_OF_MONTH, 11); 
     cal.set(Calendar.MONTH,2); 
     cal.set(Calendar.YEAR, 2013); 

2013年2月11日爲7周,但如果我調用,在上面的日曆實例:

int weekNumber=cal.get(Calendar.week_of_year) 

我得到的週數11 任何想法,爲什麼? 我試着設置語言環境,但沒有區別,問題是我只能建立這三個字段中的日曆,因爲我正在用解析器從xml文件讀取它們,它們的格式爲dd-mm-yyyy沒有更多信息那

+0

有關一些背景和更深入的理解,爲什麼和替代方案也閱讀本文:http://stackoverflow.com/questions/344380/why-is-january-month-0-in-java-calendar – MickJ

+0

請參閱http: //stackoverflow.com/questions/344380/why-is-january-month-0-in-java-calendar –

回答

0

Calendar的月份字段是從零開始的。值2對應於Calendar.MARCH。爲避免混淆,最好使用Calendar常數。你可以使用:

cal.set(Calendar.MONTH, Calendar.FEBRUARY); 
0

已使用月,因爲在Calendar Java的月份是從0:0 =月,1月=,2 =月。

使用

cal.set(Calendar.MONTH,1); 

cal.set(Calendar.MONTH, Calendar.FEBRUARY); 

如果你可以使用一個常數。否則,從您從解析器收到的月份中減去1。