Returns the query result R from the specified query (TemporalQuery) object.
TemporalQuery is a functional interface whose method queryFrom(TemporalAccessor) is invoked as a result of the 'query' method call. queryFrom(TemporalAccessor) method is passed with 'this' as the TemporalAccessor instance.
Examples:
This example uses a predefined query from TemporalQueries class.
public class QueryExample { public static void main (String[] args) { DayOfWeek d = DayOfWeek.FRIDAY; TemporalUnit u = d.query(TemporalQueries.precision()); System.out.println(u); } }
Output
Days
This example creates a custom query which finds out if underlying TemporalAccessor object is at weekend.
public class QueryExample2 { public static void main (String[] args) { DayOfWeek d = LocalDate.of(1990, Month.DECEMBER, 2) .minusYears(1) .getDayOfWeek(); Boolean b = d.query(getWeekEndQuery()); System.out.println(b);
b = DayOfWeek.MONDAY.query(getWeekEndQuery()); System.out.println(b);
b = LocalDate.of(200, Month.JULY, 15) .query(getWeekEndQuery()); System.out.println(b);
b = YearMonth.of(2005, Month.DECEMBER) .query(getWeekEndQuery()); System.out.println(b); }
public static TemporalQuery<Boolean> getWeekEndQuery () { return temporal -> { if (temporal.isSupported(ChronoField.DAY_OF_WEEK)) { int i = temporal.get(ChronoField.DAY_OF_WEEK); return i > 5; } return null; }; } }