Calendar.add和Calendar.set方法
时间: 2024-04-19 10:19:42 浏览: 307
Calendar.add方法用于在Calendar实例中添加或减去指定的时间量。它接受两个参数,第一个参数是时间字段(例如Calendar.YEAR,Calendar.MONTH等),第二个参数是要添加或减去的时间量。下面是一个示例:
```java
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, 1); // 在当前日期上加1年
calendar.add(Calendar.MONTH, -3); // 在当前日期上减去3个月
calendar.add(Calendar.DAY_OF_MONTH, 7); // 在当前日期上加7天
```
Calendar.set方法用于设置Calendar实例表示的日期和时间。它接受两个参数,第一个参数是时间字段,第二个参数是要设置的值。下面是一个示例:
```java
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2022); // 设置年份为2022
calendar.set(Calendar.MONTH, Calendar.JANUARY); // 设置月份为一月
calendar.set(Calendar.DAY_OF_MONTH, 15); // 设置日期为15号
```
这样,Calendar实例就表示了2022年1月15日的日期和时间。
相关问题
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(datestr); Calendar calendar = new GregorianCalendar() calendar.setTime(date) calendar.add(Calendar.MONTH, 0); calendar.set(Calendar.DAY_OF_MONTH, 1); var firstDay = calendar.getTime(); calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); var lastday = calendar.getTime()
这段代码的作用是将一个字符串类型的日期转换为该月份的第一天和最后一天的日期。具体来说,它首先将字符串类型的日期解析为 Date 对象,然后将其设置为 GregorianCalendar 对象的时间,接着将该月份的第一天和最后一天的日期分别设置为 Calendar 对象的时间,并将它们转换为 Date 对象。最后,它将这两个 Date 对象分别赋值给 firstDay 和 lastday 变量。
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (int i = 0; i < 7; i++) { Date startDate = calendar.getTime(); calendar.add(Calendar.DATE, 1); calendar.add(Calendar.MILLISECOND, -1); Date endDate = calendar.getTime(); System.out.println("start: " + dateFormat.format(startDate) + ", end: " + dateFormat.format(endDate)); calendar.add(Calendar.MILLISECOND, 1); } 输出结果
这段代码的作用是输出当前周的每一天的起始时间和结束时间。首先通过 `Calendar.getInstance()` 获取当前日期的 `Calendar` 对象,然后使用 `calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek())` 将日期设置为本周的第一天,即星期日。接着使用 `SimpleDateFormat` 格式化日期,并循环输出每一天的起始时间和结束时间。
具体输出结果取决于当前日期是哪一天,以下是一个例子输出结果:
```
start: 2021-11-01 00:00:00, end: 2021-11-01 23:59:59
start: 2021-11-02 00:00:00, end: 2021-11-02 23:59:59
start: 2021-11-03 00:00:00, end: 2021-11-03 23:59:59
start: 2021-11-04 00:00:00, end: 2021-11-04 23:59:59
start: 2021-11-05 00:00:00, end: 2021-11-05 23:59:59
start: 2021-11-06 00:00:00, end: 2021-11-06 23:59:59
start: 2021-11-07 00:00:00, end: 2021-11-07 23:59:59
```
阅读全文