TemporalAdjusters 介绍
时间: 2024-01-03 15:04:17 浏览: 15
`TemporalAdjusters` 是 Java 8 中引入的一个类,用于对日期进行调整。它提供了许多静态方法,可以用于调整日期为某个月的第一天、某个月的最后一天、下一个周日等等。
以下是 `TemporalAdjusters` 中常用的方法:
- `firstDayOfMonth()`:返回当前月份的第一天;
- `lastDayOfMonth()`:返回当前月份的最后一天;
- `firstDayOfNextMonth()`:返回下一个月的第一天;
- `firstDayOfNextYear()`:返回下一年的第一天;
- `next(DayOfWeek dayOfWeek)`:返回下一个指定的星期几;
- `previous(DayOfWeek dayOfWeek)`:返回上一个指定的星期几;
- `dayOfWeekInMonth(int ordinal, DayOfWeek dayOfWeek)`:返回当前月份中第 n 个指定的星期几。
以下是一个示例代码,用于获取本月的第一个周日:
```java
LocalDate date = LocalDate.of(2021, 10, 5);
LocalDate firstSunday = date.with(TemporalAdjusters.firstInMonth(DayOfWeek.SUNDAY));
System.out.println(date); // 输出:2021-10-05
System.out.println(firstSunday); // 输出:2021-10-03
```
在上述代码中,首先创建了一个 `LocalDate` 对象 `date`,表示2021年10月5日。然后使用 `TemporalAdjusters.firstInMonth(DayOfWeek.SUNDAY)` 方法获取当前月份的第一个周日,并将其传给 `with()` 方法,得到一个新的 `LocalDate` 对象 `firstSunday`,表示2021年10月3日,即本月的第一个周日。
需要注意的是,`TemporalAdjusters` 中的方法返回的都是 `TemporalAdjuster` 对象,不能直接用于获取日期。需要将其传给 `with()` 方法,才能得到一个新的日期对象。