2014-03-25 35 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

我应该说,设置时区引入了一个新的行为!我认为这会导致日期定在星期日,尽管我说星期的第一天是星期五! –