Java如何获取特定日期之后的第一特定日期的日期?

在此示例中,我们将学习如何获取特定日期之后的第一个特定日期的日期。在下面的代码片段中,我们将找到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