Close

Java Date Time - ZonedDateTime.query() Examples

Java Date Time Java Java API 


Class:

java.time.ZonedDateTime

java.lang.Objectjava.lang.Objectjava.time.ZonedDateTimejava.time.ZonedDateTimejava.time.temporal.TemporalTemporaljava.time.chrono.ChronoZonedDateTimeChronoZonedDateTimejava.io.SerializableSerializableLogicBig

Method:

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

Examples


package com.logicbig.example.zoneddatetime;

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) {
ZonedDateTime d = ZonedDateTime.now();
System.out.println(d);

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);

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

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

Output

2017-05-01T16:00:42.080-05:00[America/Chicago]
16:00:42.080
-05:00
Nanos
America/Chicago
2017-05-01
ISO




A custom TemporalQuery example:

package com.logicbig.example.zoneddatetime;

import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalQuery;

public class QueryExample2 {

public static void main(String... args) {
ZonedDateTime d = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));
System.out.println(d);

Boolean b = d.query(ValidTimeQuery);
System.out.println("Is the given time zone in Asia? " + b);
}

public static final TemporalQuery<Boolean> ValidTimeQuery = new TemporalQuery<Boolean>() {
@Override
public Boolean queryFrom(TemporalAccessor temporal) {
//check if the underlying time zone is in Asia
ZoneId id = ZoneId.from(temporal);
String stringId = id.getId();
return stringId.startsWith("Asia");
}
};
}

Output

2017-05-02T06:00:44.526+09:00[Asia/Tokyo]
Is the given time zone in Asia? true




See Also