如何获得Java年度的第一个星期日?

以下代码段可帮助您查找一年中的第一个星期日,也可以将其替换为所需的任何一天。为此,我们可以使用TemporalAdjusters.firstInMonth调节器,该调节器将返回同月的第一个匹配日期的新日期。用于“一月的第一个星期日”之类的表达。

因为我们想首先获得一年中的第一个星期日,所以我们创建了一个LocalDate代表2020年1月1日的星期日。然后我们调用该with()方法,并向传递firstInMonth调节器以DayOfWeek.SUNDAY进行查找。除了使用Java 8日期时间API外,您还可以使用旧的java.util.Calendar类,如下面的代码片段所示。但是使用新的日期时间API可以使您更具可读性,更简单和更少的代码编写。

package org.nhooo.example.datetime;

import java.time.DayOfWeek;

import java.time.LocalDate;

import java.time.Month;

import java.time.ZoneId;

import java.util.Calendar;

import static java.time.temporal.TemporalAdjusters.firstInMonth;

public class FirstSundayOfTheYear {

    public static void main(String[] args) {

        // 使用Java 8日期时间获取一年中的第一个星期日

        LocalDate now = LocalDate.of(2020, Month.JANUARY, 1);

        LocalDate sunday = now.with(firstInMonth(DayOfWeek.SUNDAY));

        System.out.println("The first Sunday of 2020 falls on: " + sunday);

        // 使用旧的java.util.Calendar获取一年中的第一个星期日

        Calendar calendar = Calendar.getInstance();

        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

        calendar.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);

        calendar.set(Calendar.MONTH, Calendar.JANUARY);

        calendar.set(Calendar.YEAR, 2020);

        System.out.println("The first Sunday of 2020 falls on: " + calendar.getTime());

        System.out.println("The first Sunday of 2020 falls on: " +

            LocalDate.ofInstant(calendar.getTime().toInstant(), ZoneId.systemDefault()));

    }

}

此代码段将打印出以下输出:

The first Sunday of 2020 falls on: 2020-01-05

The first Sunday of 2020 falls on: Sun Jan 05 04:39:59 CST 2020

The first Sunday of 2020 falls on: 2020-01-05

                       

以上是 如何获得Java年度的第一个星期日? 的全部内容, 来源链接: utcz.com/z/315863.html

回到顶部