本文整理了Java中java.time.temporal.TemporalQueries.offset()
方法的一些代码示例,展示了TemporalQueries.offset()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TemporalQueries.offset()
方法的具体详情如下:
包路径:java.time.temporal.TemporalQueries
类名称:TemporalQueries
方法名:offset
[英]A query for ZoneOffset returning null if not found.
This returns a TemporalQuery that can be used to query a temporal object for the offset. The query will return null if the temporal object cannot supply an offset.
The query implementation examines the ChronoField#OFFSET_SECONDSfield and uses it to create a ZoneOffset.
[中]对ZoneOffset的查询,如果未找到,则返回null。
这将返回一个临时查询,该查询可用于为偏移量查询临时对象。如果时态对象不能提供偏移量,查询将返回null。
查询实现检查ChronoField#OFFSET_SECONDSfield,并使用它创建区域偏移。
代码示例来源:origin: stanfordnlp/CoreNLP
TemporalAccessor datetime = formatter.parse(value);
ZoneId parsedTimezone = datetime.query(TemporalQueries.zoneId());
ZoneOffset parsedOffset = datetime.query(TemporalQueries.offset());
if (parsedTimezone != null) {
return Optional.of(java.time.Instant.from(datetime));
代码示例来源:origin: embulk/embulk
final ZoneOffset givenZoneOffset = given.query(TemporalQueries.offset());
if (given.isSupported(ChronoField.EPOCH_DAY) && given.isSupported(ChronoField.NANO_OF_DAY)) {
代码示例来源:origin: com.github.seratch/java-time-backport
/**
* Obtains an instance of {@code ZoneOffset} from a temporal object.
* <p>
* A {@code TemporalAccessor} represents some form of date and time information.
* This factory converts the arbitrary temporal object to an instance of {@code ZoneOffset}.
* <p>
* The conversion uses the {@link TemporalQueries#offset()} query, which relies
* on extracting the {@link ChronoField#OFFSET_SECONDS OFFSET_SECONDS} field.
* <p>
* This method matches the signature of the functional interface {@link TemporalQuery}
* allowing it to be used in queries via method reference, {@code ZoneOffset::from}.
*
* @param temporal the temporal object to convert, not null
* @return the zone-offset, not null
* @throws DateTimeException if unable to convert to an {@code ZoneOffset}
*/
public static ZoneOffset from(TemporalAccessor temporal) {
ZoneOffset offset = temporal.query(TemporalQueries.offset());
if (offset == null) {
throw new DateTimeException("Unable to obtain ZoneOffset from TemporalAccessor: " +
temporal + ", type " + temporal.getClass().getName());
}
return offset;
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.precision()) {
return (R) ChronoUnit.ERAS;
}
if (query == TemporalQueries.chronology() || query == TemporalQueries.zone() ||
query == TemporalQueries.zoneId() || query == TemporalQueries.offset() ||
query == TemporalQueries.localDate() || query == TemporalQueries.localTime()) {
return null;
}
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.precision()) {
return (R) ChronoUnit.ERAS;
}
if (query == TemporalQueries.chronology() || query == TemporalQueries.zone() ||
query == TemporalQueries.zoneId() || query == TemporalQueries.offset() ||
query == TemporalQueries.localDate() || query == TemporalQueries.localTime()) {
return null;
}
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.precision()) {
return (R) ChronoUnit.ERAS;
}
if (query == TemporalQueries.chronology() || query == TemporalQueries.zone() ||
query == TemporalQueries.zoneId() || query == TemporalQueries.offset() ||
query == TemporalQueries.localDate() || query == TemporalQueries.localTime()) {
return null;
}
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.precision()) {
return (R) ChronoUnit.ERAS;
}
if (query == TemporalQueries.chronology() || query == TemporalQueries.zone() ||
query == TemporalQueries.zoneId() || query == TemporalQueries.offset() ||
query == TemporalQueries.localDate() || query == TemporalQueries.localTime()) {
return null;
}
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.precision()) {
return (R) ChronoUnit.ERAS;
}
if (query == TemporalQueries.chronology() || query == TemporalQueries.zone() ||
query == TemporalQueries.zoneId() || query == TemporalQueries.offset() ||
query == TemporalQueries.localDate() || query == TemporalQueries.localTime()) {
return null;
}
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
/**
* Queries this day-of-week using the specified query.
* <p>
* This queries this day-of-week using the specified query strategy object.
* The {@code TemporalQuery} object defines the logic to be used to
* obtain the result. Read the documentation of the query to understand
* what the result of this method will be.
* <p>
* The result of this method is obtained by invoking the
* {@link TemporalQuery#queryFrom(TemporalAccessor)} method on the
* specified query passing {@code this} as the argument.
*
* @param <R> the type of the result
* @param query the query to invoke, not null
* @return the query result, null may be returned (defined by the query)
* @throws DateTimeException if unable to query (defined by the query)
* @throws ArithmeticException if numeric overflow occurs (defined by the query)
*/
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.precision()) {
return (R) DAYS;
} else if (query == TemporalQueries.localDate() || query == TemporalQueries.localTime() || query == TemporalQueries.chronology() ||
query == TemporalQueries.zone() || query == TemporalQueries.zoneId() || query == TemporalQueries.offset()) {
return null;
}
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
/**
* Queries this offset using the specified query.
* <p>
* This queries this offset using the specified query strategy object.
* The {@code TemporalQuery} object defines the logic to be used to
* obtain the result. Read the documentation of the query to understand
* what the result of this method will be.
* <p>
* The result of this method is obtained by invoking the
* {@link TemporalQuery#queryFrom(TemporalAccessor)} method on the
* specified query passing {@code this} as the argument.
*
* @param <R> the type of the result
* @param query the query to invoke, not null
* @return the query result, null may be returned (defined by the query)
* @throws DateTimeException if unable to query (defined by the query)
* @throws ArithmeticException if numeric overflow occurs (defined by the query)
*/
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.offset() || query == TemporalQueries.zone()) {
return (R) this;
} else if (query == TemporalQueries.localDate() || query == TemporalQueries.localTime() ||
query == TemporalQueries.precision() || query == TemporalQueries.chronology() || query == TemporalQueries.zoneId()) {
return null;
}
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
return (R) YEARS;
} else if (query == TemporalQueries.localDate() || query == TemporalQueries.localTime() ||
query == TemporalQueries.zone() || query == TemporalQueries.zoneId() || query == TemporalQueries.offset()) {
return null;
代码示例来源:origin: kousen/java_8_recipes
@Test
public void queries() {
assertEquals(DAYS, LocalDate.now().query(precision()));
assertEquals(NANOS, LocalTime.now().query(precision()));
ZoneOffset offset = ZonedDateTime.now().getOffset();
ZoneOffset query = ZonedDateTime.now().query(offset());
assertEquals(offset, query);
assertEquals(ZoneId.systemDefault(), ZonedDateTime.now().query(zone()));
assertEquals(ZoneId.systemDefault(), ZonedDateTime.now().query(zoneId()));
}
代码示例来源:origin: org.kie/kie-dmn-feel
public FEELFnResult<TemporalAccessor> invoke(@ParameterName("from") String val) {
if ( val == null ) {
return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "from", "cannot be null"));
}
try {
TemporalAccessor parsed = FEEL_TIME.parse(val);
if (parsed.query(TemporalQueries.offset()) != null) {
// it is an offset-zoned time, so I can know for certain an OffsetTime
OffsetTime asOffSetTime = parsed.query(OffsetTime::from);
return FEELFnResult.ofResult(asOffSetTime);
} else if (parsed.query(TemporalQueries.zone()) == null) {
// if it does not contain any zone information at all, then I know for certain is a local time.
LocalTime asLocalTime = parsed.query(LocalTime::from);
return FEELFnResult.ofResult(asLocalTime);
}
return FEELFnResult.ofResult(parsed);
} catch (DateTimeException e) {
return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "from", e));
}
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.chronology()) {
return (R) getChronology();
} else if (query == TemporalQueries.precision()) {
return (R) ChronoUnit.DAYS;
} else if (query == TemporalQueries.localDate()) {
return (R) LocalDate.ofEpochDay(toEpochDay());
} else if (query == TemporalQueries.localTime() || query == TemporalQueries.zone() ||
query == TemporalQueries.zoneId() || query == TemporalQueries.offset()) {
return null;
}
return super.query(query);
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.zoneId()) {
return (R) zone;
} else if (query == TemporalQueries.chronology()) {
return (R) chrono;
} else if (query == TemporalQueries.localDate()) {
return date != null ? (R) LocalDate.from(date) : null;
} else if (query == TemporalQueries.localTime()) {
return (R) time;
} else if (query == TemporalQueries.zone() || query == TemporalQueries.offset()) {
return query.queryFrom(this);
} else if (query == TemporalQueries.precision()) {
return null; // not a complete date/time
}
// inline TemporalAccessor.super.query(query) as an optimization
// non-JDK classes are not permitted to make this optimization
return query.queryFrom(this);
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.chronology()) {
return (R) getChronology();
} else if (query == TemporalQueries.precision()) {
return (R) NANOS;
} else if (query == TemporalQueries.localDate()) {
return (R) LocalDate.ofEpochDay(toLocalDate().toEpochDay());
} else if (query == TemporalQueries.localTime()) {
return (R) toLocalTime();
} else if (query == TemporalQueries.zone() || query == TemporalQueries.zoneId() || query == TemporalQueries.offset()) {
return null;
}
return super.query(query);
}
代码示例来源:origin: org.kie/kie-dmn-feel
public FEELFnResult<TemporalAccessor> invoke(@ParameterName("from") String val) {
if (val == null) {
return FEELFnResult.ofError(new InvalidParametersEvent(FEELEvent.Severity.ERROR, "from", "cannot be null"));
}
try {
TemporalAccessor parsed = FEEL_TIME.parse(val);
if (parsed.query(TemporalQueries.offset()) != null) {
// it is an offset-zoned time, so I can know for certain an OffsetTime
OffsetTime asOffSetTime = parsed.query(OffsetTime::from);
return FEELFnResult.ofResult(asOffSetTime);
} else if (parsed.query(TemporalQueries.zone()) == null) {
// if it does not contain any zone information at all, then I know for certain is a local time.
LocalTime asLocalTime = parsed.query(LocalTime::from);
return FEELFnResult.ofResult(asLocalTime);
}
return FEELFnResult.ofResult(parsed);
} catch (DateTimeException e) {
// try to parse it as a date time and extract the date component
// NOTE: this is an extension to the standard
return BuiltInFunctions.getFunction(DateAndTimeFunction.class).invoke(val)
.cata(overrideLeft -> FEELFnResult.ofError(new InvalidParametersEvent(FEELEvent.Severity.ERROR, "from", "time-parsing exception", e)),
this::invoke
);
}
}
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.zoneId() || query == TemporalQueries.zone()) {
return (R) getZone();
} else if (query == TemporalQueries.chronology()) {
return (R) toLocalDate().getChronology();
} else if (query == TemporalQueries.precision()) {
return (R) NANOS;
} else if (query == TemporalQueries.offset()) {
return (R) getOffset();
} else if (query == TemporalQueries.localDate()) {
return (R) LocalDate.ofEpochDay(toLocalDate().toEpochDay());
} else if (query == TemporalQueries.localTime()) {
return (R) toLocalTime();
}
return super.query(query);
}
代码示例来源:origin: org.kie/kie-dmn-feel
public FEELFnResult<TemporalAccessor> invoke(@ParameterName("from") TemporalAccessor date) {
if (date == null) {
return FEELFnResult.ofError(new InvalidParametersEvent(FEELEvent.Severity.ERROR, "from", "cannot be null"));
}
try {
// If the temporal accessor type doesn't support time, try to parse it as a date with UTC midnight.
if (!date.isSupported(ChronoField.HOUR_OF_DAY)) {
return BuiltInFunctions.getFunction( DateAndTimeFunction.class ).invoke( date, OffsetTime.of(0, 0, 0, 0, ZoneOffset.UTC) )
.cata( overrideLeft -> FEELFnResult.ofError(new InvalidParametersEvent(FEELEvent.Severity.ERROR, "from", "time-parsing exception")),
this::invoke
);
} else if( date.query( TemporalQueries.offset() ) == null ) {
return FEELFnResult.ofResult(LocalTime.from(date));
} else {
ZoneId zone = date.query(TemporalQueries.zoneId());
if (!(zone instanceof ZoneOffset)) {
// TZ is a ZoneRegion, so do NOT normalize (although the result will be unreversible, but will keep what was supplied originally).
// Unfortunately java.time.Parsed is a package-private class, hence will need to re-parse in order to have it instantiated.
return invoke(date.query(TemporalQueries.localTime()) + "@" + zone);
} else {
return FEELFnResult.ofResult(OffsetTime.from(date));
}
}
} catch (DateTimeException e) {
return FEELFnResult.ofError(new InvalidParametersEvent(FEELEvent.Severity.ERROR, "from", "time-parsing exception", e));
}
}
}
代码示例来源:origin: org.kie/kie-dmn-feel
public FEELFnResult<TemporalAccessor> invoke(@ParameterName("from") TemporalAccessor date) {
if ( date == null ) {
return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "from", "cannot be null"));
}
try {
// If the temporal accessor type doesn't support time, try to parse it as a date with UTC midnight.
if (!date.isSupported(ChronoField.HOUR_OF_DAY)) {
return BuiltInFunctions.getFunction( DateAndTimeFunction.class ).invoke( date, OffsetTime.of(0, 0, 0, 0, ZoneOffset.UTC) )
.cata( overrideLeft -> FEELFnResult.ofError(new InvalidParametersEvent(FEELEvent.Severity.ERROR, "from", "time-parsing exception")),
this::invoke
);
} else if( date.query( TemporalQueries.offset() ) == null ) {
return FEELFnResult.ofResult( LocalTime.from( date ) );
} else {
ZoneId zone = date.query(TemporalQueries.zoneId());
if (!(zone instanceof ZoneOffset)) {
// TZ is a ZoneRegion, so do NOT normalize (although the result will be unreversible, but will keep what was supplied originally).
// Unfortunately java.time.Parsed is a package-private class, hence will need to re-parse in order to have it instantiated.
return invoke(date.query(TemporalQueries.localTime()) + "@" + zone);
} else {
return FEELFnResult.ofResult(OffsetTime.from(date));
}
}
} catch (DateTimeException e) {
return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "from", "time-parsing exception", e));
}
}
内容来源于网络,如有侵权,请联系作者删除!