Java Date Time Java Java API
java.time.YearMonth
public <R> R query(TemporalQuery<R> query)
Queries this year-month using the specified query.
package com.logicbig.example.yearmonth;import java.time.YearMonth;import java.time.chrono.Chronology;import java.time.temporal.TemporalQueries;import java.time.temporal.TemporalUnit;public class QueryExample { public static void main(String... args) { YearMonth y = YearMonth.of(2010, 11); System.out.println(y); Chronology c = y.query(TemporalQueries.chronology()); System.out.println(c); TemporalUnit u = y.query(TemporalQueries.precision()); System.out.println(u); }}
2010-11ISOMonths
A custom query example.
package com.logicbig.example.yearmonth;import java.time.YearMonth;import java.time.temporal.ChronoField;import java.time.temporal.TemporalQuery;import java.time.temporal.UnsupportedTemporalTypeException;public class QueryExample2 { public static void main(String... args) { YearMonth y = YearMonth.of(1940, 5); System.out.println(y); Boolean b = y.query(secondWorldWarPeriodQuery); System.out.println(b); YearMonth y2 = YearMonth.now(); System.out.println(y2); Boolean b2 = y2.query(secondWorldWarPeriodQuery); System.out.println(b2); } private static final TemporalQuery<Boolean> secondWorldWarPeriodQuery = temporal -> { if (temporal.isSupported(ChronoField.YEAR) && temporal.isSupported(ChronoField.MONTH_OF_YEAR)) { YearMonth y = YearMonth.from(temporal); return y.isAfter(YearMonth.of(1939, 9)) && y.isBefore(YearMonth.of(1945, 9)); } throw new UnsupportedTemporalTypeException("The temporal must support year and year-of-month fields"); };}
1940-05true2017-05false