java.time.temporal.TemporalQueries.zoneId()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(9.7k)|赞(0)|评价(0)|浏览(110)

本文整理了Java中java.time.temporal.TemporalQueries.zoneId()方法的一些代码示例,展示了TemporalQueries.zoneId()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TemporalQueries.zoneId()方法的具体详情如下:
包路径:java.time.temporal.TemporalQueries
类名称:TemporalQueries
方法名:zoneId

TemporalQueries.zoneId介绍

[英]A strict query for the ZoneId.

This queries a TemporalAccessor for the zone. The zone is only returned if the date-time conceptually contains a ZoneId. It will not be returned if the date-time only conceptually has an ZoneOffset. Thus a ZonedDateTime will return the result of getZone(), but an OffsetDateTime will return null.

In most cases, applications should use #ZONE as this query is too strict.

The result from JDK classes implementing TemporalAccessor is as follows:
LocalDate returns null
LocalTime returns null
LocalDateTime returns null
ZonedDateTime returns the associated zone
OffsetTime returns null
OffsetDateTime returns null
ChronoLocalDate returns null
ChronoLocalDateTime returns null
ChronoZonedDateTime returns the associated zone
Era returns null
DayOfWeek returns null
Month returns null
Year returns null
YearMonth returns null
MonthDay returns null
ZoneOffset returns null
Instant returns null
[中]对ZoneId的严格查询。
这将查询区域的临时助理。仅当日期时间概念上包含ZoneId时,才会返回zone。如果日期时间仅在概念上具有区域偏移,则不会返回。因此,ZonedDateTime将返回getZone()的结果,而OffsetDateTime将返回null。
在大多数情况下,应用程序应该使用#ZONE,因为这个查询太严格了。
JDK类实现TemporalAccessor的结果如下:
LocalDate返回null
LocalTime返回null
LocalDateTime返回null
ZoneDateTime返回关联的区域
OffsetTime返回null
OffsetDateTime返回null
ChronoLocalDate返回null
ChronoLocalDateTime返回null
ChronoZonedDateTime返回关联的区域
Era返回空值
DayOfWeek返回null
月份返回空值
年份返回空值
YearMonth返回空值
MonthDay返回空值
ZoneOffset返回null
即时返回空值

代码示例

代码示例来源:origin: neo4j/neo4j

static ZoneId parseZoneName( String zoneName )
{
  ZoneId parsedName;
  try
  {
    parsedName = ZONE_NAME_PARSER.parse( zoneName.replace( ' ', '_' ) ).query( TemporalQueries.zoneId() );
  }
  catch ( DateTimeParseException e )
  {
    throw new TemporalParseException( "Invalid value for TimeZone: " + e.getMessage(), e.getParsedString(),
        e.getErrorIndex(), e );
  }
  return parsedName;
}

代码示例来源:origin: neo4j/neo4j

public static ZoneId parseZoneOffsetOrZoneName( String zoneName )
{
  Matcher matcher = OFFSET.matcher( zoneName );
  if ( matcher.matches() )
  {
    return parseOffset( matcher );
  }
  try
  {
    return ZONE_NAME_PARSER.parse( zoneName.replace( ' ', '_' ) ).query( TemporalQueries.zoneId() );
  }
  catch ( DateTimeParseException e )
  {
    throw new TemporalParseException( "Invalid value for TimeZone: " + e.getMessage(), e.getParsedString(),
        e.getErrorIndex(), e );
  }
}

代码示例来源:origin: stanfordnlp/CoreNLP

try {
 TemporalAccessor datetime = formatter.parse(value);
 ZoneId parsedTimezone = datetime.query(TemporalQueries.zoneId());
 ZoneOffset parsedOffset = datetime.query(TemporalQueries.offset());
 if (parsedTimezone != null) {

代码示例来源:origin: embulk/embulk

private OffsetDateTime buildOffsetDateTime(final TemporalAccessor given) throws TimestampParseException {
  final ZoneId givenZoneId = given.query(TemporalQueries.zoneId());
  if (givenZoneId != null) {
    throw new TimestampParseException("Non-offset zone IDs are unaccepted in 'java:' formats: " + this.pattern);

代码示例来源:origin: com.github.seratch/java-time-backport

public ZoneId queryFrom(TemporalAccessor temporal) {
    ZoneId zone = temporal.query(TemporalQueries.zoneId());
    return (zone != null && zone instanceof ZoneOffset == false ? zone : null);
  }
};

代码示例来源:origin: com.github.seratch/java-time-backport

@SuppressWarnings("unchecked")
  @Override
  public <R> R query(TemporalQuery<R> query) {
    if (query == TemporalQueries.zoneId()) {
      return (R) ZoneId.this;
    }
    return super.query(query);
  }
});

代码示例来源:origin: com.github.seratch/java-time-backport

@Override
public <R> R query(TemporalQuery<R> query) {
  if (query == TemporalQueries.zoneId() || query == TemporalQueries.chronology() || query == TemporalQueries.precision()) {
    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.chronology()) {
    return (R) chrono;
  }
  if (query == TemporalQueries.zoneId() || query == TemporalQueries.zone()) {
    return (R) zone;
  }
  return super.query(query);
}

代码示例来源:origin: org.neo4j/neo4j-values

static ZoneId parseZoneName( String zoneName )
{
  ZoneId parsedName;
  try
  {
    parsedName = ZONE_NAME_PARSER.parse( zoneName.replace( ' ', '_' ) ).query( TemporalQueries.zoneId() );
  }
  catch ( DateTimeParseException e )
  {
    throw new TemporalParseException( "Invalid value for TimeZone: " + e.getMessage(), e.getParsedString(),
        e.getErrorIndex(), e );
  }
  return parsedName;
}

代码示例来源:origin: org.neo4j/neo4j-values

public static ZoneId parseZoneOffsetOrZoneName( String zoneName )
{
  Matcher matcher = OFFSET.matcher( zoneName );
  if ( matcher.matches() )
  {
    return parseOffset( matcher );
  }
  try
  {
    return ZONE_NAME_PARSER.parse( zoneName.replace( ' ', '_' ) ).query( TemporalQueries.zoneId() );
  }
  catch ( DateTimeParseException e )
  {
    throw new TemporalParseException( "Invalid value for TimeZone: " + e.getMessage(), e.getParsedString(),
        e.getErrorIndex(), e );
  }
}

代码示例来源:origin: com.github.seratch/java-time-backport

@SuppressWarnings("unchecked")
  @Override
  public <R> R query(TemporalQuery<R> query) {
    if (query == TemporalQueries.chronology()) {
      return (R) effectiveChrono;
    }
    if (query == TemporalQueries.zoneId()) {
      return (R) effectiveZone;
    }
    if (query == TemporalQueries.precision()) {
      return temporal.query(query);
    }
    return query.queryFrom(this);
  }
};

代码示例来源:origin: com.foreach.across/across-core

/**
 * Returns the {@link ZoneId} of the given temporal.
 * If the temporal supports {@link java.time.temporal.ChronoField#OFFSET_SECONDS}, those will be used to define the zone.
 * Otherwise the temporal will be queried for the zone. Should no zone be provided, {@link ZoneId#systemDefault()} will be used.
 *
 * @param temporal to retrieve the ZoneId of
 * @return the ZoneId.
 */
private ZoneId getZoneId( TemporalAccessor temporal ) {
  if ( temporal.isSupported( OFFSET_SECONDS ) ) {
    return ZoneOffset.ofTotalSeconds( Math.toIntExact( temporal.getLong( OFFSET_SECONDS ) ) );
  }
  ZoneId zone = temporal.query( TemporalQueries.zoneId() );
  return ZoneOffset.of( zone != null ? zone.getId() : zoneId.getId(), ZoneId.SHORT_IDS );
}

代码示例来源: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: 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: 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.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);
}

相关文章