📜  Java中的 LocalDate query() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:31:53.402000             🧑  作者: Mango

Java中的 LocalDate query() 方法及示例

简介

query(TemporalQuery) 方法是Java 8中的 LocalDate 接口中定义的一个方法,用于在给定的日期上执行查询操作。它接受一个TemporalQuery对象作为参数,返回一个根据查询操作计算后的结果对象。

在Java 8中,除了日期和时间,TemporalQuery也可以用于查询其他类型的时间对象,例如年度、月份、星期、季度等。

语法
<R> R query(TemporalQuery<R> query)

参数说明:

  • query:查询操作,类型为 TemporalQuery<R> 接口实现类的对象。

返回值说明:

  • 返回类型为 R,代表实现 TemporalQuery 接口中的 queryFrom(TemporalAccessor temporal) 方法中的返回值类型,根据所执行查询操作的不同,返回值类型也会不同。
示例
import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.TemporalQueries;
import java.time.temporal.TemporalQuery;

public class LocalDateExample {
    public static void main(String[] args) {

        // 创建一个LocalDate对象
        LocalDate date = LocalDate.of(2022, Month.JANUARY, 1);

        // 查询日期所属的年份
        TemporalQuery<Integer> yearQuery = TemporalQueries.localDate().year();
        int year = date.query(yearQuery);
        System.out.println("年份:" + year);

        // 查询日期所属的月份
        TemporalQuery<Month> monthQuery = TemporalQueries.localDate().month();
        Month month = date.query(monthQuery);
        System.out.println("月份:" + month);

        // 查询日期所属的星期几
        TemporalQuery<DayOfWeek> dowQuery = TemporalQueries.localDate().dayOfWeek();
        DayOfWeek dow = date.query(dowQuery);
        System.out.println("星期几:" + dow);
    }
}

运行结果:

年份: 2022
月份: JANUARY
星期几: SATURDAY

在示例中,我们首先创建了一个 LocalDate 对象,然后分别通过不同的 TemporalQuery 对象获取了日期所属的年份、月份、星期几。最后打印出查询结果。