📅  最后修改于: 2023-12-03 15:31:53.402000             🧑  作者: Mango
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
对象获取了日期所属的年份、月份、星期几。最后打印出查询结果。