2014-03-25 70 views
0

在下面的代碼片段中,我試圖讓當前周的第一天的日期,在一個星期的系統,從週六開始:Java日曆行爲不同

Calendar cal = Calendar.getInstance(); 
cal.setFirstDayOfWeek(Calendar.SATURDAY); 
cal.set(Calendar.DAY_OF_WEEK,cal.getFirstDayOfWeek()); 

當我運行這段代碼here,計算日期在上個星期六是正確的(今天是星期二),但是當我在我的Android程序中使用此代碼時,日期設置爲下個星期六!任何想法爲什麼?

回答

0

嘗試帶時區或區域設置參數的日曆。這樣,你應該能夠確保不同的區域設置/時區沒有不同的值。

像這樣:

Calendar.getInstance(Locale.CANADA); 
+0

感謝您的回答,但語言環境沒有我想要的價值。另外,我想知道發生了什麼事!問題是,在這兩個平臺中,'setFirstDayOfWeek()'起作用,並將星期一的第一天設置爲星期六。現在我們已經在上週六開始的一週內,爲什麼'cal.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);'會將日期設置爲下個星期六? –

+0

我應該說,設置時區引入了一個新的行爲!我認爲這會導致日期定在星期日,儘管我說星期的第一天是星期五! –