java获取给定日期的一年中的一周

2022-01-11 00:00:00 calendar java

给定日期,我如何获得一年中的一周?我尝试了以下代码:

how can I get a week of the year given a date? I tried the following code:

  Calendar sDateCalendar = new GregorianCalendar();
  sDateCalendar.set(Integer.parseInt(sDateYearAAAA), Integer.parseInt(sDateMonthMM)-1, Integer.parseInt(sDateDayDD));
  System.out.format("sDateCalendar %tc
", sDateCalendar);        
  iStartWeek = sDateCalendar.getWeekYear();
  System.out.println("iStartWeek "+iStartWeek+ " "+sDateCalendar.WEEK_OF_YEAR);

我得到:sDateCalendar lun 4 月 23 日 11:58:39 CEST 2012iStartWeek 2012 3

and i obtain: sDateCalendar lun apr 23 11:58:39 CEST 2012 iStartWeek 2012 3

一年中正确的星期是 17.有人可以帮我吗?

while the correct week of year is 17. Can someone help me ?

推荐答案

你使用的是sDateCalendar.WEEK_OF_YEAR,即静态整数WEEK_OF_YEAR,见java.util.Calendar类的源码:

You are using sDateCalendar.WEEK_OF_YEAR, which is the static integer WEEK_OF_YEAR, see the source of the java.util.Calendar class:

public final static int WEEK_OF_YEAR = 3;

要获取周数,您应该使用:

To get the week number, you should be using:

sDateCalendar.get(Calendar.WEEK_OF_YEAR);

相关文章