java.time.ZonedDateTime.withNano()方法的使用及代码示例

x33g5p2x  于2022-02-05 转载在 其他  
字(10.9k)|赞(0)|评价(0)|浏览(109)

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

ZonedDateTime.withNano介绍

[英]Returns a copy of this ZonedDateTime with the nano-of-second value altered.

This operates on the local time-line, LocalDateTime#withNano(int) of the local date-time. This is then converted back to a ZonedDateTime, using the zone ID to obtain the offset.

When converting back to ZonedDateTime, if the local date-time is in an overlap, then the offset will be retained if possible, otherwise the earlier offset will be used. If in a gap, the local date-time will be adjusted forward by the length of the gap.

This instance is immutable and unaffected by this method call.
[中]返回此ZoneDateTime的副本,更改nano的秒值。
它在本地时间线上运行,本地日期时间#与本地日期时间的nano(int)相同。然后将其转换回ZoneDateTime,使用分区ID获取偏移量。
当转换回ZoneDateTime时,如果本地日期时间重叠,那么如果可能,将保留偏移量,否则将使用较早的偏移量。如果存在间隙,本地日期时间将根据间隙的长度向前调整。
此实例是不可变的,不受此方法调用的影响。

代码示例

代码示例来源:origin: prestodb/presto

@Override
  public ConnectorPageSource createPageSource(
      ConnectorTransactionHandle transactionHandle,
      ConnectorSession session,
      ConnectorSplit split,
      List<ColumnHandle> columns)
  {
    AtopSplit atopSplit = (AtopSplit) split;

    ImmutableList.Builder<Type> types = ImmutableList.builder();
    ImmutableList.Builder<AtopColumn> atopColumns = ImmutableList.builder();

    for (ColumnHandle column : columns) {
      AtopColumnHandle atopColumnHandle = (AtopColumnHandle) column;
      AtopColumn atopColumn = atopSplit.getTable().getColumn(atopColumnHandle.getName());
      atopColumns.add(atopColumn);
      types.add(typeManager.getType(atopColumn.getType()));
    }

    ZonedDateTime date = atopSplit.getDate();
    checkArgument(date.equals(date.withHour(0).withMinute(0).withSecond(0).withNano(0)), "Expected date to be at beginning of day");
    return new AtopPageSource(readerPermits, atopFactory, session, utf8Slice(atopSplit.getHost().getHostText()), atopSplit.getTable(), date, atopColumns.build(), types.build());
  }
}

代码示例来源:origin: prestodb/presto

@Override
  public ConnectorSplitSource getSplits(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorTableLayoutHandle layoutHandle, SplitSchedulingStrategy splitSchedulingStrategy)
  {
    AtopTableLayoutHandle handle = (AtopTableLayoutHandle) layoutHandle;

    AtopTableHandle table = handle.getTableHandle();

    List<ConnectorSplit> splits = new ArrayList<>();
    ZonedDateTime end = ZonedDateTime.now(timeZone);
    for (Node node : nodeManager.getWorkerNodes()) {
      ZonedDateTime start = end.minusDays(maxHistoryDays - 1).withHour(0).withMinute(0).withSecond(0).withNano(0);
      while (start.isBefore(end)) {
        ZonedDateTime splitEnd = start.withHour(23).withMinute(59).withSecond(59).withNano(0);
        Domain splitDomain = Domain.create(ValueSet.ofRanges(Range.range(TIMESTAMP_WITH_TIME_ZONE, 1000 * start.toEpochSecond(), true, 1000 * splitEnd.toEpochSecond(), true)), false);
        if (handle.getStartTimeConstraint().overlaps(splitDomain) && handle.getEndTimeConstraint().overlaps(splitDomain)) {
          splits.add(new AtopSplit(table.getTable(), node.getHostAndPort(), start.toEpochSecond(), start.getZone()));
        }
        start = start.plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
      }
    }

    return new FixedSplitSource(splits);
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

public ZonedDateTime withNano(int value) {
  return dt.withNano(value);
}

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

@Test
  public void testInsertReadDateTime() {
    Event event = new Event();
    UUID id = UUID.randomUUID();
    LocalDateTime localDateTimeNow = LocalDateTime.now().withNano(0);
    OffsetDateTime offsetDateTimeNow = OffsetDateTime.now(ZoneId.systemDefault()).withNano(0);
    ZonedDateTime zonedDateTimeNow = ZonedDateTime.now(ZoneId.systemDefault()).withNano(0);
    event.setId(id);
    event.setLocalDateTime(localDateTimeNow);
    event.setOffsetDateTime(offsetDateTimeNow);
    event.setZonedDateTime(zonedDateTimeNow);

    data.insert(event);

    event = data.findByKey(Event.class, id);
    Assert.assertEquals(localDateTimeNow, event.getLocalDateTime());
    Assert.assertEquals(offsetDateTimeNow, event.getOffsetDateTime());
    Assert.assertEquals(zonedDateTimeNow.toInstant(), event.getZonedDateTime().toInstant());
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

case 'H':
  if (round) {
    dateTime = dateTime.withMinute(0).withSecond(0).withNano(0);
  } else {
    dateTime = dateTime.plusHours(sign * num);
case 'm':
  if (round) {
    dateTime = dateTime.withSecond(0).withNano(0);
  } else {
    dateTime = dateTime.plusMinutes(sign * num);
case 's':
  if (round) {
    dateTime = dateTime.withNano(0);
  } else {
    dateTime = dateTime.plusSeconds(sign * num);

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

public ZonedDateTime withNano(int value) {
  return dt.withNano(value);
}

代码示例来源:origin: apache/servicemix-bundles

public ZonedDateTime withNano(int value) {
  return dt.withNano(value);
}

代码示例来源:origin: no.api.meteo/meteo-core

public static ZonedDateTime toZeroMSN(ZonedDateTime dateTime) {
  return dateTime.withMinute(0).withSecond(0).withNano(0);
}

代码示例来源:origin: com.guestful.module/guestful.module.jsr310-extensions

public static ZonedDateTime roundDownMinutes(ZonedDateTime time, int step) {
  int mins = time.getMinute();
  time = time.withSecond(0).withNano(0);
  if (mins % step == 0) return time;
  if (60 % step != 0) throw new IllegalArgumentException("Invalid step: " + step);
  return time.withMinute(mins - (mins % step));
}

代码示例来源:origin: org.thymeleaf.extras/thymeleaf-extras-java8time

/**
 *
 * @return a instance of java.time.ZonedDateTime with 00:00:00.000 for the time part
 * @since 2.1.0
 */
public Temporal createTodayForTimeZone(final Object zoneId) {
  return ZonedDateTime.now(zoneId(zoneId))
    .withHour(0).withMinute(0).withSecond(0).withNano(0);
}

代码示例来源:origin: thymeleaf/thymeleaf-extras-java8time

/**
 *
 * @return a instance of java.time.ZonedDateTime with 00:00:00.000 for the time part
 * @since 2.1.0
 */
public Temporal createTodayForTimeZone(final Object zoneId) {
  return ZonedDateTime.now(zoneId(zoneId))
    .withHour(0).withMinute(0).withSecond(0).withNano(0);
}

代码示例来源:origin: no.api.meteo/meteo-core

public static ZonedDateTime toZeroHMSN(ZonedDateTime dateTime) {
  return dateTime.withHour(0).withMinute(0).withSecond(0).withNano(0);
}

代码示例来源:origin: wildfly/wildfly-core

throw ROOT_LOGGER.unableToObtainCertificate(alias);
ZonedDateTime current = ZonedDateTime.now().withZoneSameInstant(ZoneId.of("UTC")).withNano(0);
ZonedDateTime notAfter = ZonedDateTime.ofInstant(certificate.getNotAfter().toInstant(), ZoneId.of("UTC"));
long daysToExpiry = ChronoUnit.DAYS.between(current, notAfter);

代码示例来源:origin: de.knightsoft-net/mt-bean-validators

@Override
 public final boolean isValid(final ZonedDateTime pvalue,
   final ConstraintValidatorContext pcontext) {
  if (pvalue == null) {
   return true;
  }
  final ZonedDateTime dateLimit = ZonedDateTime.now().minusYears(minYears).withHour(0)
    .withMinute(0).withSecond(0).withNano(0);
  return !dateLimit.isBefore(pvalue.withHour(0).withMinute(0).withSecond(0).withNano(0));
 }
}

代码示例来源:origin: com.guestful.module/guestful.module.jsr310-extensions

public static ZonedDateTime roundUpMinutes(ZonedDateTime time, int step) {
  int mins = time.getMinute();
  time = time.withSecond(0).withNano(0);
  if (mins % step == 0) return time;
  if (60 % step != 0) throw new IllegalArgumentException("Invalid step: " + step);
  mins = mins + step - (mins % step);
  return mins < 60 ? time.withMinute(mins) : time.plusHours(1).withMinute(mins - 60);
}

代码示例来源:origin: io.vertx/vertx-jdbc-client

@Parameters(name = "{0}")
public static Collection<Object[]> generateData() {
 List<Object[]> params = new ArrayList<>();
 ZonedDateTime dateTime = ZonedDateTime.of(2016, 3, 16, 16, 0, 0, 0, ZoneId.of("Europe/Paris"));
 for (int i = 0; i < 4; i++) {
  int nanos = 123 * (i == 0 ? 0 : 1) * (int) Math.pow(1000, i > 1 ? i - 1 : 0);
  params.add(new Object[]{ISO_INSTANT.format(dateTime.withNano(nanos)), java.sql.Timestamp.class});
 }
 params.add(new Object[]{ISO_LOCAL_TIME.format(dateTime.withSecond(1)), java.sql.Time.class});
 params.add(new Object[]{dateTime.toLocalDate().toString(), java.sql.Date.class});
 params.add(new Object[]{"f47ac10b-58cc-4372-a567-0e02b2c3d479", UUID.class});
 return params;
}

代码示例来源:origin: prestosql/presto

@Override
  public ConnectorPageSource createPageSource(
      ConnectorTransactionHandle transactionHandle,
      ConnectorSession session,
      ConnectorSplit split,
      List<ColumnHandle> columns)
  {
    AtopSplit atopSplit = (AtopSplit) split;

    ImmutableList.Builder<Type> types = ImmutableList.builder();
    ImmutableList.Builder<AtopColumn> atopColumns = ImmutableList.builder();

    for (ColumnHandle column : columns) {
      AtopColumnHandle atopColumnHandle = (AtopColumnHandle) column;
      AtopColumn atopColumn = atopSplit.getTable().getColumn(atopColumnHandle.getName());
      atopColumns.add(atopColumn);
      types.add(typeManager.getType(atopColumn.getType()));
    }

    ZonedDateTime date = atopSplit.getDate();
    checkArgument(date.equals(date.withHour(0).withMinute(0).withSecond(0).withNano(0)), "Expected date to be at beginning of day");
    return new AtopPageSource(readerPermits, atopFactory, session, utf8Slice(atopSplit.getHost().getHostText()), atopSplit.getTable(), date, atopColumns.build(), types.build());
  }
}

代码示例来源:origin: com.enonic.xp/core-api

plusMonths( period.getMonths() ).
plusDays( period.getDays() ).
withNano( 0 );

代码示例来源:origin: prestosql/presto

@Override
  public ConnectorSplitSource getSplits(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorTableLayoutHandle layoutHandle, SplitSchedulingStrategy splitSchedulingStrategy)
  {
    AtopTableLayoutHandle handle = (AtopTableLayoutHandle) layoutHandle;

    AtopTableHandle table = handle.getTableHandle();

    List<ConnectorSplit> splits = new ArrayList<>();
    ZonedDateTime end = ZonedDateTime.now(timeZone);
    for (Node node : nodeManager.getWorkerNodes()) {
      ZonedDateTime start = end.minusDays(maxHistoryDays - 1).withHour(0).withMinute(0).withSecond(0).withNano(0);
      while (start.isBefore(end)) {
        ZonedDateTime splitEnd = start.withHour(23).withMinute(59).withSecond(59).withNano(0);
        Domain splitDomain = Domain.create(ValueSet.ofRanges(Range.range(TIMESTAMP_WITH_TIME_ZONE, 1000 * start.toEpochSecond(), true, 1000 * splitEnd.toEpochSecond(), true)), false);
        if (handle.getStartTimeConstraint().overlaps(splitDomain) && handle.getEndTimeConstraint().overlaps(splitDomain)) {
          splits.add(new AtopSplit(table.getTable(), node.getHostAndPort(), start.toEpochSecond(), start.getZone()));
        }
        start = start.plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
      }
    }

    return new FixedSplitSource(splits);
  }
}

代码示例来源:origin: infiniteautomation/ma-core-public

/**
   * @param zdt
   * @return
   */
  public Instant getInstant(ZonedDateTime zdt) {
    ZonedDateTime offset = zdt.withHour(hour).withMinute(minute).withSecond(second).withNano((int)(millisecond * 1000000l));
    LocalDateTime ldt = zdt.toLocalDateTime();
    ldt = ldt.withHour(hour).withMinute(minute).withSecond(second).withNano((int)(millisecond * 1000000l));
    
    if(!zdt.getZone().getRules().isValidOffset(ldt, zdt.getOffset())) {
      //Within a gap of DST so OR after the transition
      ZoneOffsetTransition transition = zdt.getZone().getRules().nextTransition(zdt.toInstant());
      if(!ldt.isAfter(transition.getDateTimeAfter())){
        //In a gap so we shift our time forward to the end of the gap.
        offset = transition.getDateTimeAfter().atZone(zdt.getZone());
      }else {
        //After a gap so ensure we use the next zone offset
        offset = ldt.atOffset(transition.getOffsetAfter()).atZoneSimilarLocal(transition.getOffsetAfter());
      }
    }
    
    return offset.toInstant();
  }
}

相关文章

ZonedDateTime类方法