为WEEK_OF_YEAR字段计算的值范围为 1 到 53。一年的第 1 周是从 getFirstDayOfWeek() 开始的最早的七天时间段,其中包含该年至少 getMinimalDaysInFirstWeek() 天数。因此,它取决于 getMinimalDaysInFirstWeek()、getFirstDayOfWeek() 和 1 月 1 日这一周中的某一天的值。一年的第 1 周到下一年的第 1 周之间的周数按顺序从 2 到 52 或 53(根据需要)编号。
要确定该周是 2010 年的最后一周还是 2011 年的第一周,Java 使用 javadoc。如果该方法返回 7,则该周中所有天数都属于同一年的第一周是第一周,如果它返回 1,则包含下一年任意天的第一周是下一年的第一周。getMinimalDaysInFirstWeek
在这种情况下,2011 年 1 月 1 日是星期六,因此只要您希望将一周和一天视为下一年的第一周,就将其视为 2011 年的第一周,否则请执行:
Calendar c = Calendar.getInstance();
c.setMinimalDaysInFirstWeek(7);//anything more than 1 will work in this year
DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
c.setTime( sdf.parse("31/12/2010"));
System.out.println( c.get( Calendar.WEEK_OF_YEAR ) );
返回:
52