我需要使用日历来创建我指定月份、星期数和星期几的日期。我正在创建日历的新实例:**
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK,7);
c.set(Calendar.WEEK_OF_MONTH,1);
c.set(Calendar.MONTH,10);
** 当调用 c.getTime(); 我没有得到 11 月的第一个星期六,而是得到了 10 月的最后一个星期六?
您需要更正日历常量值。请参考下面的代码,它工作正常。请记住日历中的月份值以 0 和 1 开头,即月份为 0 表示月份为 Jan。
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK,4);
c.set(Calendar.WEEK_OF_MONTH,4);
c.set(Calendar.MONTH,7);
这DAY_OF_WEEK
是周日到周六。值 7,表示SATURDAY
。WEEK_OF_MONTH
是_
get 和 set 的字段编号,指示当前月份中的周数。该月的第一周,由 getFirstDayOfWeek() 和 getMinimalDaysInFirstWeek() 定义,值为 1。子类定义该月第一周前几天的 WEEK_OF_MONTH 值。
MONTH
数字从 0 开始,1110
月也是如此。您没有指定年份,因此它使用当前年份。
十一月的第一周星期六是
Sat Nov 02 11:19:24 EDT 2013
你还期待什么?十月?MONTH
将您的值更改为9
.
尝试这个
c.set(2000, 7, 4); // YYYY M D
// print the result
System.out.println("Altered date is :" + cal.getTime());