14

日付を指定してその年の週を取得するにはどうすればよいですか? 次のコードを試しました:

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

sDateCalendar lun apr 23 11:58:39 CEST 2012 iStartWeek 2012 3 を取得します。

年の正しい週は17ですが、誰か助けてもらえますか?

4

4 に答える 4

22

エレガントな方法 (java.util.Calendar は必要ありません):

new SimpleDateFormat("w").format(new java.util.Date())
于 2013-09-06T12:00:09.537 に答える
20

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);
于 2012-04-23T10:06:04.223 に答える