当前位置: 首页 > 面试题库 >

为什么Java日历设置(整数年,整数月,整数日期)未返回正确的日期?

程钧
2023-03-14
问题内容

根据doc,日历set()为:

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html#set%28int,%20int,%20int%29

set(int year, int month, int date) 
Sets the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.

码:

Calendar c1 = GregorianCalendar.getInstance();
c1.set(2000, 1, 30);  //January 30th 2000
Date sDate = c1.getTime();

System.out.println(sDate);

输出:

Wed Mar 01 19:32:21 JST 2000

为什么不是1月30日???


问题答案:

1月是2月。2月30日更改为3月1日。您应该将月份设置为0。最好是使用Calendar中定义的常量:

c1.set(2000, Calendar.JANUARY, 30);


 类似资料:
  • 问题内容: 我最近继承的应用程序关于构造函数的弃用警告已满: 有谁知道或可以指出为什么将诸如以下这样的简单内容替换为以下内容的原因: 现在,显然不赞成使用警告本身并不是问题,但是您是否可以想象,如果删除此构造函数,数以百万计的LOC会痛苦地哭泣吗? 在我对基准测试的简短介绍中,执行基准测试大约需要50%的时间。 问题答案: 本来打算包含有关日期的所有逻辑,但是API设计人员最终意识到,到目前为止,

  • 问题内容: 如何从Date对象()中将月份作为整数? 问题答案: 您还可以使用Java 8中的java.time包并将您的对象转换为对象,然后仅使用方法。 请注意,此处的月份值是1到12,与adarshr的答案相反,月份值是0到11。 但是正如Basil Bourque在评论中所说,首选方法是使用该方法获取枚举对象。

  • 我们有一个关于MySQL中返回错误整数值的函数的问题。我们已经检查了“booked_passeters”是否包含正确的值0,并且当移除该变量时,它可以正常工作,也就是说只返回整数40。但是,当我们试图从它中减去“booked_passeters”(最终仍应返回40)时,它就不起作用了。 包括下面的代码。 提前道谢!:-)

  • 我需要将数据从一些内部数据库迁移到云中。表中的一些数据以YYYY-MM-DD格式存储为“日期”。 谢了!

  • 我有大量的日期范围,如下所示,示例如下。我需要计算每个实际日历年有多少个月。因此,这将分解为: 合同:123 开始日期:2016年11月1日 结束日期:2018年6月1日 2016年11月1日 合同:456 开始日期:2017年5月31日 结束日期:2019年6月1日 2017年5月31日 有人知道解决这个问题的方法吗?每个合同都有一行,都在同一个表中,开始和结束日期列在同一行中。 我原本打算沿着

  • 问题内容: 我有以下的int变量。如何将其转换为Date对象,反之亦然。 问题答案: 将值转换为a 并用于将其解析为一个对象: 反之相似,但是不是使用,而是将结果从转换为: 一种替代方法是使用并手动解析您的eger 的表示形式,尽管我 强烈建议您 这样做: