Close

Java Date Time - Instant.query() Examples

Java Date Time Java Java API 


Class:

java.time.Instant

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

Method:

public <R> R query(TemporalQuery<R> query)
Queries this instant using the specified query.

Examples


package com.logicbig.example.instant;

import java.time.Instant;
import java.time.temporal.TemporalQueries;
import java.time.temporal.TemporalUnit;

public class QueryExample {

public static void main(String... args) {
Instant i = Instant.now();
System.out.println(i);

TemporalUnit query = i.query(TemporalQueries.precision());
System.out.println(query);
}
}

Output

2017-05-01T20:57:09.883Z
Nanos




A custom TemporalQuery example.

package com.logicbig.example.instant;

import java.time.*;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalQuery;

public class QueryExample2 {

public static void main(String... args) {
Instant i = Instant.now();
System.out.println(i);


Duration d = i.query(durationSince2010Query);
System.out.println(d);
}

public static final TemporalQuery<Duration> durationSince2010Query = new TemporalQuery<Duration>() {
long since2010 = LocalDate.of(2010, 01, 01).atStartOfDay().toEpochSecond(ZoneOffset.UTC);

@Override
public Duration queryFrom(TemporalAccessor temporal) {

if (temporal.isSupported(ChronoField.INSTANT_SECONDS)) {
long l = temporal.getLong(ChronoField.INSTANT_SECONDS);
return Duration.of(l -since2010, ChronoUnit.SECONDS);

}
return null;
}
};
}

Output

2017-05-01T20:57:11.931Z
PT64268H57M11S




See Also