在此示例中,我们将学习如何获取特定日期之后的第一个特定日期的日期。在下面的代码片段中,我们将找到2016年新年之后的第一个星期五。首先让我们创建一个LocalDate表示2016年新年的对象。我们可以使用LocalDate.of()工厂方法创建date对象。
要从某个日期开始获取特定星期几的第一次出现,我们TemporalAdjuster使用TemporalAdjusters.next()方法创建一个并传递星期几,在这种情况下,我们通过DayOfWeek.FRIDAY。
之后,我们创建另一个LocalDate将保留下一个星期五的日期。获取我们调用newYear.with()方法的下一个星期五的日期,并传递TemporalAdjuster之前创建的。
现在,让我们尝试下面的代码片段。
package org.nhooo.example.datetime; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.Month; import java.time.temporal.TemporalAdjuster; import java.time.temporal.TemporalAdjusters; public class GetFirstDayAfterDate { public static void main(String[] args) { // 获取当前日期。 LocalDate newYear = LocalDate.of(2016, Month.JANUARY, 1); System.out.println("New Year = " + newYear); // 获取下一个星期五。 TemporalAdjuster nextFriday = TemporalAdjusters.next(DayOfWeek.FRIDAY); LocalDate nextFridayDate = newYear.with(nextFriday); System.out.printf("The first Friday after the new year of %s is %s%n", newYear, nextFriday); } }
该代码段将打印出以下结果:
New Year = 2016-01-01 The first Friday after the new year of 2016-01-01 is 2016-01-08