【问题标题】:How to use calendar to create date如何使用日历创建日期
【发布时间】:2013-11-02 23:40:32
【问题描述】:

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

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 月的最后一个星期六?

【问题讨论】:

  • 请修正你的变量名,除非这不是java.util.Calendar。还有你期望什么,你会得到什么?
  • 现在你改变了所有的价值观......
  • 我必须指定一周的第一天吗

标签: java calendar


【解决方案1】:

DAY_OF_WEEK 是周日到周六。值 7,表示SATURDAYWEEK_OF_MONTH

get 和 set 的字段编号,表示在 这个月。每月的第一周,定义为 getFirstDayOfWeek() 和 getMinimalDaysInFirstWeek() 的值为 1。 子类定义第一次之前几天的 WEEK_OF_MONTH 的值 一个月的一周。

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

11 月的第一周星期六是

Sat Nov 02 11:19:24 EDT 2013

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

【讨论】:

  • 不,我需要参加 11 月的第一个星期六,但我要参加 10 月的最后一个星期六。
  • @primeFaceUser 别尖叫了。您当前拥有的代码给出了 11 月的第一个星期六。
  • 但它将于 10 月 26 日回归,这是我的问题,我需要解决这个不寻常的问题。
  • @primeFaceUser 我的回答准确地解释了WEEK_OF_MONTH 是什么。您还可以阅读 javadoc。您目前在问题中拥有的代码是用于Sat Nov 02 11:19:24 EDT 2013
  • 它在 10 月 26 日返回,因为一周的第一天是 7(星期六)所以为了解决这个问题,我将一周的第一天设置为一个月的第一天。
【解决方案2】:

您需要更正日历常量值。请参考下面的代码,它工作正常。 请记住日历中的月份值以 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);

【讨论】:

    【解决方案3】:

    试试这个

      c.set(2000, 7, 4);  // YYYY M D
    
      // print the result
      System.out.println("Altered date is :" + cal.getTime());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 2019-10-24
      • 2017-01-24
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多