2013-09-01 129 views
0

出於某種奇怪的原因.. Calendar.getInstance().get(Calendar.WEEK_OF_MONTH)回報0,而在Linux命令返回1而Linux命令返回1

[email protected]:~# echo $((($(date +%d)-1)/7+1)) 

一開始我以爲可以WEEK_OF_MONTH返回0是第一天是星期一,所以星期天(今天)是第0個月(?) ,但似乎也不是這種情況,區域設置返回星期日作爲第一天

[email protected]:~# locale day 

週日,週一,週二,週三,週四,週五,週六

任何幫助,將不勝感激,謝謝。

+2

爲什麼要比較java方法和linux命令的結果? – Julien

+0

你最好打印出一些關於日曆的細節,比如'System.out.println(Calendar.getInstance());' –

回答

0

Java可能不遵循與date命令相同的語言環境規則。比較兩者可能不是一個好主意。

由於星期一不定義爲一週中的第一天,因此您得到的月份爲0。嘗試將其添加到您的代碼中以查看區別:

calendar.setFirstDayOfWeek(Calendar.SUNDAY);