Close

Java Date Time - OffsetDateTime.query() Examples

Java Date Time Java Java API 


Class:

java.time.OffsetDateTime

java.lang.Objectjava.lang.Objectjava.time.OffsetDateTimejava.time.OffsetDateTimejava.time.temporal.TemporalTemporaljava.time.temporal.TemporalAdjusterTemporalAdjusterjava.lang.ComparableComparablejava.io.SerializableSerializableLogicBig

Method:

public <R> R query(TemporalQuery<R> query)


Examples


This example uses implementations of TemporalQuery to query OffsetDateTime object.

package com.logicbig.example.offsetdatetime;

import java.time.*;
import java.time.chrono.Chronology;
import java.time.temporal.TemporalQueries;
import java.time.temporal.TemporalUnit;

public class QueryExample {

public static void main(String... args) {
OffsetDateTime d = OffsetDateTime.of(2015, 11, 15, 18,
20, 30, 100, ZoneOffset.ofHours(-6));

Chronology c = d.query(TemporalQueries.chronology());
System.out.println(c);

LocalDate d2 = d.query(TemporalQueries.localDate());
System.out.println(d2);

LocalTime t = d.query(TemporalQueries.localTime());
System.out.println(t);

ZoneOffset z = d.query(TemporalQueries.offset());
System.out.println(z);

TemporalUnit p = d.query(TemporalQueries.precision());
System.out.println(p);

ZoneId z2 = d.query(TemporalQueries.zone());
System.out.println(z2);

ZoneId z3 = d.query(TemporalQueries.zoneId());
System.out.println(z3);
}
}

Output

ISO
2015-11-15
18:20:30.000000100
-06:00
Nanos
-06:00
null




A custom TemporalQuery example.

package com.logicbig.example.offsetdatetime;

import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalQuery;

public class QueryExample2 {

public static void main(String... args) {
OffsetDateTime d = OffsetDateTime.of(2015, 11, 15, 18,
20, 30, 100, ZoneOffset.ofHours(-5));


Boolean b = d.query(ValidTimeZoneQuery);
System.out.println(b);

}

public static final TemporalQuery<Boolean> ValidTimeZoneQuery = new TemporalQuery<Boolean>() {
@Override
public Boolean queryFrom(TemporalAccessor temporal) {
Instant instant = Instant.now();
ZoneId systemZone = ZoneId.systemDefault();
ZoneOffset z1 = systemZone.getRules().getOffset(instant);
ZoneOffset z2 = ZoneOffset.from(temporal);
return z1.equals(z2);
}
};
}

Output

true




See Also