Java 如何使用日历创建日期

Java 如何使用日历创建日期,java,calendar,Java,Calendar,我需要使用日历来创建指定月份、周数和星期几的日期。 我正在创建日历的新实例: ** ** 调用c.getTime()时; 不是11月的第一个星期六,而是10月的最后一个星期六?试试这个 c.set(2000, 7, 4); // YYYY M D // print the result System.out.println("Altered date is :" + cal.getTime()); 您需要更正日历常量值。请参考下面的代码,它工作正常请记住,日历中的月份值以0和1

我需要使用日历来创建指定月份、周数和星期几的日期。 我正在创建日历的新实例: **

** 调用c.getTime()时; 不是11月的第一个星期六,而是10月的最后一个星期六?

试试这个

  c.set(2000, 7, 4);  // YYYY M D

  // print the result
  System.out.println("Altered date is :" + cal.getTime());

您需要更正日历常量值。请参考下面的代码,它工作正常请记住,日历中的月份值以0和1开头,即0表示月份

Calendar c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_WEEK,4);
    c.set(Calendar.WEEK_OF_MONTH,4);
    c.set(Calendar.MONTH,7);

每周的
天是从星期天到星期六。值7表示
星期六
。每月的

get和set的字段号,指示 当月。一个月的第一周,定义为 getFirstDayOfWeek()和getMinimalDaysInFirstWeek()的值为1。 子类定义第一个月前几天的周值 每月的一周

MONTH
数字从0开始,因此
10
是11月。您没有指定年份,因此它使用当前年份

11月的第一周星期六是星期六

Sat Nov 02 11:19:24 EDT 2013

你还期待什么?十月?将
MONTH
值更改为
9

请修复变量名,除非这不是
java.util.Calendar
。还有,您期望得到什么?现在您更改了所有值…我必须指定本周的第一天吗?我需要得到11月的第一个星期六,但我得到的是10月的最后一个星期六。@primeFaceUser停止尖叫。您当前拥有的代码给出了11月的第一个星期六。但是它将返回10月26日,这是我的问题,我需要解决这个不寻常的问题。@primeFaceUser我的回答准确地解释了每月的第几周。您还可以阅读javadoc。您当前在问题中的代码是针对2013年11月2日11:19:24(美国东部夏令时)周六的
。它返回10月26日,因为一周的第一天是7(星期六),所以为了解决这个问题,我将一周的第一天设置为一个月的第一天。
Sat Nov 02 11:19:24 EDT 2013