本文整理了Java中java.time.temporal.TemporalQueries.zone()
方法的一些代码示例,展示了TemporalQueries.zone()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TemporalQueries.zone()
方法的具体详情如下:
包路径:java.time.temporal.TemporalQueries
类名称:TemporalQueries
方法名:zone
[英]A lenient query for the ZoneId, falling back to the ZoneOffset.
This queries a TemporalAccessor for the zone. It first tries to obtain the zone, using #zoneId(). If that is not found it tries to obtain the #offset().
In most cases, applications should use this query rather than #zoneId().
This query examines the ChronoField#OFFSET_SECONDSfield and uses it to create a ZoneOffset.
The method ZoneId#from(TemporalAccessor) can be used as a TemporalQuery via a method reference, ZoneId::from. That method is equivalent to this query, except that it throws an exception if a zone cannot be obtained.
[中]对ZoneId的宽松查询,回到ZoneOffset。
这将查询区域的临时助理。它首先尝试使用#zoneId()获取区域。如果没有找到,它会尝试获取#offset()。
在大多数情况下,应用程序应该使用此查询,而不是#zoneId()。
此查询检查ChronoField#OFFSET_SECONDSfield,并使用它创建区域偏移。
方法ZoneId#from(TemporalAccessor)可以通过方法引用ZoneId::from用作临时查询。该方法与此查询等效,只是如果无法获取区域,它会引发异常。
代码示例来源:origin: neo4j/neo4j
final ZoneId expectedZoneId = ((Temporal) expectedValue).query( TemporalQueries.zone() );
ZoneId actualZoneId = ((Temporal) actualValue).query( TemporalQueries.zone() );
代码示例来源:origin: com.github.seratch/java-time-backport
@SuppressWarnings("unchecked")
@Override
public <R> R query(TemporalQuery<R> query) {
if (query == TemporalQueries.chronology()) {
return (R) chrono;
}
if (query == TemporalQueries.zoneId() || query == TemporalQueries.zone()) {
return (R) zone;
}
return super.query(query);
}
代码示例来源: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: org.elasticsearch/elasticsearch
private long parseDateTime(String value, ZoneId timeZone, boolean roundUpIfNoTime) {
DateFormatter formatter = roundUpIfNoTime ? this.roundUpFormatter : this.formatter;
try {
if (timeZone == null) {
return DateFormatters.toZonedDateTime(formatter.parse(value)).toInstant().toEpochMilli();
} else {
TemporalAccessor accessor = formatter.parse(value);
ZoneId zoneId = TemporalQueries.zone().queryFrom(accessor);
if (zoneId != null) {
timeZone = zoneId;
}
return DateFormatters.toZonedDateTime(accessor).withZoneSameLocal(timeZone).toInstant().toEpochMilli();
}
} catch (IllegalArgumentException | DateTimeException e) {
throw new ElasticsearchParseException("failed to parse date field [{}]: [{}]", e, value, e.getMessage());
}
}
}
代码示例来源: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: agrestio/agrest
private Optional<ZonedDateTime> getZonedDateTime(TemporalAccessor parsed) {
ZoneId zone = parsed.query(TemporalQueries.zone());
if (zone == null) {
return Optional.empty();
}
Optional<ZonedDateTime> zonedDateTime = getLocalDateTime(parsed)
.map(localDateTime -> localDateTime.atZone(zone));
if (!zonedDateTime.isPresent()) {
zonedDateTime = getLocalDate(parsed).map(localDate -> localDate.atStartOfDay(zone));
}
return zonedDateTime;
}
代码示例来源: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.nhl.link.rest/link-rest-base
private Optional<ZonedDateTime> getZonedDateTime(TemporalAccessor parsed) {
ZoneId zone = parsed.query(TemporalQueries.zone());
if (zone == null) {
return Optional.empty();
}
Optional<ZonedDateTime> zonedDateTime = getLocalDateTime(parsed)
.map(localDateTime -> localDateTime.atZone(zone));
if (!zonedDateTime.isPresent()) {
zonedDateTime = getLocalDate(parsed).map(localDate -> localDate.atStartOfDay(zone));
}
return zonedDateTime;
}
代码示例来源: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: org.eclipse/yasson
@Override
protected XMLGregorianCalendar parseWithFormatter(String jsonValue, DateTimeFormatter formatter) {
final TemporalAccessor parsed = formatter.parse(jsonValue);
LocalTime time = parsed.query(TemporalQueries.localTime());
ZoneId zone = parsed.query(TemporalQueries.zone());
if (zone == null) {
zone = UTC;
}
if (time == null) {
time = ZERO_LOCAL_TIME;
}
ZonedDateTime result = LocalDate.from(parsed).atTime(time).atZone(zone);
return datatypeFactory.newXMLGregorianCalendar(GregorianCalendar.from(result));
}
}
代码示例来源: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: org.eclipse/yasson
@Override
protected Calendar parseWithFormatter(String jsonValue, DateTimeFormatter formatter) {
final TemporalAccessor parsed = formatter.parse(jsonValue);
LocalTime time = parsed.query(TemporalQueries.localTime());
ZoneId zone = parsed.query(TemporalQueries.zone());
if (zone == null) {
zone = UTC;
}
if (time == null) {
time = ZERO_LOCAL_TIME;
}
ZonedDateTime result = LocalDate.from(parsed).atTime(time).atZone(zone);
return GregorianCalendar.from(result);
}
}
代码示例来源: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: org.apache.johnzon/johnzon-jsonb
private static ZonedDateTime parseZonedDateTime(final String text, final DateTimeFormatter formatter, final ZoneId defaultZone){
TemporalAccessor parse = formatter.parse(text);
ZoneId zone = parse.query(TemporalQueries.zone());
if (Objects.isNull(zone)) {
zone = defaultZone;
}
int year = parse.isSupported(YEAR) ? parse.get(YEAR) : 0;
int month = parse.isSupported(MONTH_OF_YEAR) ? parse.get(MONTH_OF_YEAR) : 0;
int day = parse.isSupported(DAY_OF_MONTH) ? parse.get(DAY_OF_MONTH) : 0;
int hour = parse.isSupported(HOUR_OF_DAY) ? parse.get(HOUR_OF_DAY) : 0;
int minute = parse.isSupported(MINUTE_OF_HOUR) ? parse.get(MINUTE_OF_HOUR) : 0;
int second = parse.isSupported(SECOND_OF_MINUTE) ? parse.get(SECOND_OF_MINUTE) : 0;
int millisecond = parse.isSupported(MILLI_OF_SECOND) ? parse.get(MILLI_OF_SECOND) : 0;
return ZonedDateTime.of(year, month, day, hour, minute, second, millisecond, zone);
}
代码示例来源: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: apache/johnzon
private static ZonedDateTime parseZonedDateTime(final String text, final DateTimeFormatter formatter, final ZoneId defaultZone){
TemporalAccessor parse = formatter.parse(text);
ZoneId zone = parse.query(TemporalQueries.zone());
if (Objects.isNull(zone)) {
zone = defaultZone;
}
int year = parse.isSupported(YEAR) ? parse.get(YEAR) : 0;
int month = parse.isSupported(MONTH_OF_YEAR) ? parse.get(MONTH_OF_YEAR) : 0;
int day = parse.isSupported(DAY_OF_MONTH) ? parse.get(DAY_OF_MONTH) : 0;
int hour = parse.isSupported(HOUR_OF_DAY) ? parse.get(HOUR_OF_DAY) : 0;
int minute = parse.isSupported(MINUTE_OF_HOUR) ? parse.get(MINUTE_OF_HOUR) : 0;
int second = parse.isSupported(SECOND_OF_MINUTE) ? parse.get(SECOND_OF_MINUTE) : 0;
int millisecond = parse.isSupported(MILLI_OF_SECOND) ? parse.get(MILLI_OF_SECOND) : 0;
return ZonedDateTime.of(year, month, day, hour, minute, second, millisecond, zone);
}
代码示例来源:origin: org.kie/kie-dmn-feel
@Test
public void testComposite4() {
final FEELFnResult<TemporalAccessor> p1 = dateFunction.invoke("2017-01-01");
final FEELFnResult<TemporalAccessor> p2 = timeFunction.invoke("23:59:01@Europe/Paris");
FunctionTestUtil.assertResult(p1, LocalDate.of(2017, 1, 1));
final TemporalAccessor p2TA = p2.getOrElse(null);
assertNotNull(p2TA);
assertEquals(LocalTime.of(23, 59, 1), p2TA.query(TemporalQueries.localTime()));
assertEquals(ZoneId.of("Europe/Paris"), p2TA.query(TemporalQueries.zone()));
final FEELFnResult<TemporalAccessor> result = dateTimeFunction.invoke(p1.getOrElse(null), p2.getOrElse(null));
FunctionTestUtil.assertResult(result, ZonedDateTime.of(2017, 1, 1, 23, 59, 1, 0, ZoneId.of("Europe/Paris")));
}
代码示例来源:origin: org.kie/kie-dmn-feel
@Test
public void parseWithZoneIANA() {
final TemporalAccessor parsedResult = timeFunction.invoke("00:01:00@Europe/Paris").getOrElse(null);
assertEquals(LocalTime.of(0, 1, 0), parsedResult.query(TemporalQueries.localTime()));
assertEquals(ZoneId.of("Europe/Paris"), parsedResult.query(TemporalQueries.zone()));
}
代码示例来源:origin: org.kie/kie-dmn-feel
@Test
public void parseWithZone() {
final TemporalAccessor parsedResult = timeFunction.invoke("00:01:00@Etc/UTC").getOrElse(null);
assertEquals(LocalTime.of(0, 1, 0), parsedResult.query(TemporalQueries.localTime()));
assertEquals(ZoneId.of("Etc/UTC"), parsedResult.query(TemporalQueries.zone()));
}
代码示例来源:origin: org.kie/kie-dmn-feel
@Test
public void testComposite5() {
final FEELFnResult<TemporalAccessor> p1 = dateTimeFunction.invoke("2017-08-10T10:20:00@Europe/Paris");
FunctionTestUtil.assertResult(p1, ZonedDateTime.of(2017, 8, 10, 10, 20, 0, 0, ZoneId.of("Europe/Paris")));
final TemporalAccessor timeOnDateTime = timeFunction.invoke(p1.getOrElse(null)).getOrElse(null);
assertNotNull(timeOnDateTime);
assertEquals(LocalTime.of(10, 20, 0), timeOnDateTime.query(TemporalQueries.localTime()));
assertEquals(ZoneId.of("Europe/Paris"), timeOnDateTime.query(TemporalQueries.zone()));
FunctionTestUtil.assertResult(stringFunction.invoke(timeOnDateTime), "10:20:00@Europe/Paris");
}
}
内容来源于网络,如有侵权,请联系作者删除!