Calendar類(lèi)中默認(rèn)第一天為周日
以下是我獲取某個(gè)星期所在周的天數(shù)
public static int getDayOfWeek(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
if (dayOfWeek == 0) {
dayOfWeek = 7;
}
return dayOfWeek;
}
踩坑記錄:關(guān)于setFirstDayOfWeek失效的3個(gè)誤區(qū)
導(dǎo)致這玩意失效的主要原因如下:
1.Calendar類(lèi)中的常量
-
Calendar中的星期一、二、三、四、五、六、日、DAY_OF_WEEK等都是以一個(gè)常量的形式存在的。 -
setFirstDayOfWeek()并不能改變這些常量的值,因此get(Calendar.DAY_OF_WEEK)的值不變。
2.那是否這玩意沒(méi)用
- 當(dāng)然不是
- 這玩意一直都是有效的。它作用于
Calendar類(lèi)中所有的 非常量。比如所:getFirstDayOfWeek()等。
3.它真正"失效"的可能之一
那就是因?yàn)樵阱e(cuò)誤的地方用對(duì)了人(233)。
比如:
在設(shè)置時(shí)間之后calendar.setTime(date)才setFirstDayOfWeek()