当前位置: 首页>>代码示例>>Java>>正文


Java ZonedDateTime.plus方法代码示例

本文整理汇总了Java中java.time.ZonedDateTime.plus方法的典型用法代码示例。如果您正苦于以下问题:Java ZonedDateTime.plus方法的具体用法?Java ZonedDateTime.plus怎么用?Java ZonedDateTime.plus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.time.ZonedDateTime的用法示例。


在下文中一共展示了ZonedDateTime.plus方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: initNextTime

import java.time.ZonedDateTime; //导入方法依赖的package包/类
private ZonedDateTime initNextTime(ZonedDateTime start, ZonedDateTime now, Period p, Duration d) {
  // if the start time is in the future next will just be start
  ZonedDateTime next = start;
  // if the start time is in the past, increment until we find the next time to execute
  // cannot call isComplete() here as it depends on nextTime
  if (startTime.compareTo(now) <= 0 && !schedule.getRunOnce()) {
    // TODO: Look to optimize.  Consider a one-second timer, it would take too long
    // For example if only a single unit, e.g. only minutes, then can optimize relative to start 
    // if there are more than one unit, then the loop may be best as it will be difficult
    while (next.compareTo(now) <= 0) {
      next = next.plus(p);
      next = next.plus(d);
    }
  }

  return next;
}
 
开发者ID:edgexfoundry,项目名称:device-bluetooth,代码行数:18,代码来源:ScheduleContext.java

示例2: toIntervalStart

import java.time.ZonedDateTime; //导入方法依赖的package包/类
public ZonedDateTime toIntervalStart(ZonedDateTime time) {
    ZonedDateTime start;
    switch (ChronoUnit.valueOf(unit.toString().toUpperCase())) {
        case SECONDS:
            start = time.truncatedTo(ChronoUnit.MINUTES);
            break;
        case MINUTES:
            start = time.truncatedTo(ChronoUnit.HOURS);
            break;
        case HOURS:
            start = time.truncatedTo(ChronoUnit.DAYS);
            break;
        case DAYS:
            start = time.with(TemporalAdjusters.firstDayOfYear()).truncatedTo(ChronoUnit.DAYS);
            break;
        default:
            start = time.with(TemporalAdjusters.firstDayOfYear()).truncatedTo(ChronoUnit.DAYS);
    }
    long haveMillis = Duration.between(start, time).toMillis();
    long maxMillis = duration.toMillis();
    long periods = haveMillis / maxMillis;
    start = start.plus(duration.multipliedBy(periods));
    return start;
}
 
开发者ID:hylkevds,项目名称:SensorThingsProcessor,代码行数:25,代码来源:ProcessorBatchAggregate.java

示例3: calculateIntervalsForTime

import java.time.ZonedDateTime; //导入方法依赖的package包/类
public List<Interval> calculateIntervalsForTime(TimeObject phenTime) {
    List<Interval> retval = new ArrayList<>();
    Instant phenTimeStart = getPhenTimeStart(phenTime);
    Instant phenTimeEnd = getPhenTimeEnd(phenTime);

    ZonedDateTime atZone = phenTimeStart.atZone(getZoneId());
    ZonedDateTime intStart = level.toIntervalStart(atZone);
    ZonedDateTime intEnd = intStart.plus(level.amount, level.unit);

    retval.add(Interval.of(intStart.toInstant(), intEnd.toInstant()));
    while (intEnd.toInstant().isBefore(phenTimeEnd)) {
        intStart = intEnd;
        intEnd = intStart.plus(level.amount, level.unit);
        retval.add(Interval.of(intStart.toInstant(), intEnd.toInstant()));
    }
    return retval;
}
 
开发者ID:hylkevds,项目名称:SensorThingsProcessor,代码行数:18,代码来源:ProcessorBatchAggregate.java

示例4: isExpired

import java.time.ZonedDateTime; //导入方法依赖的package包/类
@Override
public boolean isExpired(final TicketState ticketState) {
    final ZonedDateTime currentSystemTime = ZonedDateTime.now(ZoneOffset.UTC);
    final ZonedDateTime creationTime = ticketState.getCreationTime();

    // token has been used, check maxTimeToLive (hard window)
    ZonedDateTime expirationTime = creationTime.plus(this.maxTimeToLiveInSeconds, ChronoUnit.SECONDS);
    if (currentSystemTime.isAfter(expirationTime)) {
        LOGGER.debug("Access token is expired because the time since creation is greater than maxTimeToLiveInSeconds");
        return true;
    }

    // token is within hard window, check timeToKill (sliding window)
    expirationTime = creationTime.plus(this.timeToKillInSeconds, ChronoUnit.SECONDS);
    if (ticketState.getLastTimeUsed().isAfter(expirationTime)) {
        LOGGER.debug("Access token is expired because the time since last use is greater than timeToKillInMilliseconds");
        return true;
    }

    return false;
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:22,代码来源:OAuthAccessTokenExpirationPolicy.java

示例5: isExpired

import java.time.ZonedDateTime; //导入方法依赖的package包/类
@Override
public boolean isExpired(final TicketState ticketState) {
    final ZonedDateTime currentSystemTime = ZonedDateTime.now(ZoneOffset.UTC);
    final ZonedDateTime creationTime = ticketState.getCreationTime();
    final ZonedDateTime lastTimeUsed = ticketState.getLastTimeUsed();

    // Ticket has been used, check maxTimeToLive (hard window)
    ZonedDateTime expirationTime = creationTime.plus(this.maxTimeToLiveInSeconds, ChronoUnit.SECONDS);
    if (currentSystemTime.isAfter(expirationTime)) {
        LOGGER.debug("Ticket is expired because the time since creation is greater than maxTimeToLiveInSeconds");
        return true;
    }

    expirationTime = lastTimeUsed.plus(this.timeToKillInSeconds, ChronoUnit.SECONDS);
    if (currentSystemTime.isAfter(expirationTime)) {
        LOGGER.debug("Ticket is expired because the time since last use is greater than timeToKillInSeconds");
        return true;
    }

    return false;
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:22,代码来源:TicketGrantingTicketExpirationPolicy.java

示例6: isExpired

import java.time.ZonedDateTime; //导入方法依赖的package包/类
@Override
public boolean isExpired(final TicketState ticketState) {
    final ZonedDateTime currentTime = ZonedDateTime.now(ZoneOffset.UTC);
    final ZonedDateTime lastTimeUsed = ticketState.getLastTimeUsed();
    final ZonedDateTime killTime = lastTimeUsed.plus(this.timeToKillInSeconds, ChronoUnit.SECONDS);

    if (ticketState.getCountOfUses() == 0 && currentTime.isBefore(killTime)) {
        LOGGER.debug("Ticket is not expired due to a count of zero and the time being less "
                + "than the timeToKillInSeconds");
        return false;
    }

    if (currentTime.isAfter(killTime)) {
        LOGGER.debug("Ticket is expired due to the time being greater than the timeToKillInSeconds");
        return true;
    }

    final ZonedDateTime dontUseUntil = lastTimeUsed.plus(this.timeInBetweenUsesInSeconds, ChronoUnit.SECONDS);
    if (currentTime.isBefore(dontUseUntil)) {
        LOGGER.warn("Ticket is expired due to the time being less than the waiting period.");
        return true;
    }

    return false;
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:26,代码来源:ThrottledUseAndTimeoutExpirationPolicy.java

示例7: isExpired

import java.time.ZonedDateTime; //导入方法依赖的package包/类
@Override
public boolean isExpired(final TicketState ticketState) {
    if (ticketState == null) {
        LOGGER.debug("Ticket state is null for [{}]", this.getClass().getSimpleName());
        return true;
    }
    final long countUses = ticketState.getCountOfUses();
    if (countUses >= this.numberOfUses) {
        LOGGER.debug("Ticket usage count [{}] is greater than or equal to [{}]", countUses, this.numberOfUses);
        return true;
    }

    final ZonedDateTime systemTime = ZonedDateTime.now(ZoneOffset.UTC);
    final ZonedDateTime lastTimeUsed = ticketState.getLastTimeUsed();
    final ZonedDateTime expirationTime = lastTimeUsed.plus(this.timeToKillInSeconds, ChronoUnit.SECONDS);

    if (systemTime.isAfter(expirationTime)) {
        LOGGER.debug("Ticket has expired because the difference between current time [{}] "
                        + "and ticket time [{}] is greater than or equal to [{}]", systemTime, lastTimeUsed,
                this.timeToKillInSeconds);
        return true;
    }
    return false;
}
 
开发者ID:mrluo735,项目名称:cas-5.1.0,代码行数:25,代码来源:MultiTimeUseOrTimeoutExpirationPolicy.java

示例8: resolveTimestamp

import java.time.ZonedDateTime; //导入方法依赖的package包/类
private Timestamp resolveTimestamp(String timestampState, String timestampUnitString, long amountToAddValue, String amountToAddUnit) {
    ChronoUnit timestampUnit = ChronoUnit.valueOf(timestampUnitString.toUpperCase());
    ZonedDateTime timestamp = truncate(executionInstant.atZone(systemDefault()), timestampUnit);

    if (timestampState.equalsIgnoreCase("past")) {
        timestamp = timestamp.minus(1, timestampUnit);
    } else if (timestampState.equalsIgnoreCase("future")) {
        timestamp = timestamp.plus(1, timestampUnit);
    }

    if (amountToAddValue != 0 && amountToAddUnit != null) {
        timestamp = timestamp.plus(amountToAddValue, ChronoUnit.valueOf(amountToAddUnit.toUpperCase()));
    }

    return new Timestamp(timestamp.toInstant().toEpochMilli());
}
 
开发者ID:StefaniniInspiring,项目名称:pugtsdb,代码行数:17,代码来源:RollUpAggregationSteps.java

示例9: initNextTime

import java.time.ZonedDateTime; //导入方法依赖的package包/类
private ZonedDateTime initNextTime(ZonedDateTime start, ZonedDateTime now, Period p, Duration d) {
  // if the start time is in the future next will just be start
  ZonedDateTime next = start;
  // if the start time is in the past, increment until we find the next time to execute
  // cannot call isComplete() here as it depends on nextTime
  if (startTime.compareTo(now) <= 0 && !schedule.getRunOnce()) {
    // TODO: Look to optimize. Consider a one-second timer, it would take too long
    // For example if only a single unit, e.g. only minutes, then can optimize relative to start
    // if there are more than one unit, then the loop may be best as it will be difficult
    while (next.compareTo(now) <= 0) {
      next = next.plus(p);
      next = next.plus(d);
    }
  }

  return next;
}
 
开发者ID:mgjeong,项目名称:device-opcua-java,代码行数:18,代码来源:ScheduleContext.java

示例10: initNextTime

import java.time.ZonedDateTime; //导入方法依赖的package包/类
private ZonedDateTime initNextTime(ZonedDateTime start, ZonedDateTime now, Period p, Duration d) {
	// if the start time is in the future next will just be start
	ZonedDateTime next = start;
	// if the start time is in the past, increment until we find the next time to execute
	// cannot call isComplete() here as it depends on nextTime
	if(startTime.compareTo(now) <= 0 && !schedule.getRunOnce()) {
		// TODO: Look to optimize.  Consider a one-second timer, it would take too long
		// For example if only a single unit, e.g. only minutes, then can optimize relative to start 
		// if there are more than one unit, then the loop may be best as it will be difficult
		while(next.compareTo(now) <= 0) {
			next = next.plus(p);
			next = next.plus(d);
		}
	}
	return next;
}
 
开发者ID:edgexfoundry,项目名称:device-bacnet,代码行数:17,代码来源:ScheduleContext.java

示例11: testRangeOfZonedDateTimes

import java.time.ZonedDateTime; //导入方法依赖的package包/类
@Test(dataProvider = "ZonedDateTimeRanges")
public void testRangeOfZonedDateTimes(ZonedDateTime start, ZonedDateTime end, Duration step, boolean parallel) {
    final Range<ZonedDateTime> range = Range.of(start, end, step);
    final Array<ZonedDateTime> array = range.toArray(parallel);
    final boolean ascend = start.isBefore(end);
    final int expectedLength = (int)Math.ceil(Math.abs((double)ChronoUnit.SECONDS.between(start, end)) / (double)step.getSeconds());
    Assert.assertEquals(array.length(), expectedLength);
    Assert.assertEquals(array.typeCode(), ArrayType.ZONED_DATETIME);
    Assert.assertTrue(!array.style().isSparse());
    Assert.assertEquals(range.start(), start, "The range start");
    Assert.assertEquals(range.end(), end, "The range end");
    ZonedDateTime expected = null;
    for (int i=0; i<array.length(); ++i) {
        final ZonedDateTime actual = array.getValue(i);
        expected = expected == null ? start : ascend ? expected.plus(step) : expected.minus(step);
        Assert.assertEquals(actual, expected, "Value matches at " + i);
        Assert.assertTrue(ascend ? actual.compareTo(start) >=0 && actual.isBefore(end) : actual.compareTo(start) <= 0 && actual.isAfter(end), "Value in bounds at " + i);
    }
}
 
开发者ID:zavtech,项目名称:morpheus-core,代码行数:20,代码来源:RangeBasicTests.java

示例12: testRangeOfZonedDateTimes

import java.time.ZonedDateTime; //导入方法依赖的package包/类
@Test(dataProvider = "ZonedDateTimeRanges")
public void testRangeOfZonedDateTimes(ZonedDateTime start, ZonedDateTime end, Duration step, boolean parallel) {
    final boolean ascend = start.isBefore(end);
    final Range<ZonedDateTime> range = Range.of(start, end, step, v -> v.getHour() == 6);
    final Array<ZonedDateTime> array = range.toArray(parallel);
    final ZonedDateTime first = array.first(v -> true).map(ArrayValue::getValue).get();
    final ZonedDateTime last = array.last(v -> true).map(ArrayValue::getValue).get();
    Assert.assertEquals(array.typeCode(), ArrayType.ZONED_DATETIME);
    Assert.assertTrue(!array.style().isSparse());
    Assert.assertEquals(range.start(), start, "The range start");
    Assert.assertEquals(range.end(), end, "The range end");
    int index = 0;
    ZonedDateTime value = first;
    while (ascend ? value.isBefore(last) : value.isAfter(last)) {
        final ZonedDateTime actual = array.getValue(index);
        Assert.assertEquals(actual, value, "Value matches at " + index);
        Assert.assertTrue(ascend ? actual.compareTo(start) >= 0 && actual.isBefore(end) : actual.compareTo(start) <= 0 && actual.isAfter(end), "Value in bounds at " + index);
        value = ascend ? value.plus(step) : value.minus(step);
        while (value.getHour() == 6) value = ascend ? value.plus(step) : value.minus(step);
        index++;
    }
}
 
开发者ID:zavtech,项目名称:morpheus-core,代码行数:23,代码来源:RangeFilterTests.java

示例13: resolveTimestamp

import java.time.ZonedDateTime; //导入方法依赖的package包/类
private Timestamp resolveTimestamp(String timestampState, String timestampUnitString) {
    ChronoUnit timestampUnit = ChronoUnit.valueOf(timestampUnitString.toUpperCase());
    ZonedDateTime timestamp = truncate(executionInstant.atZone(systemDefault()), timestampUnit);

    if (timestampState.equalsIgnoreCase("past")) {
        timestamp = timestamp.minus(1, timestampUnit);
    } else if (timestampState.equalsIgnoreCase("future")) {
        timestamp = timestamp.plus(1, timestampUnit);
    }

    return new Timestamp(timestamp.toInstant().toEpochMilli());
}
 
开发者ID:StefaniniInspiring,项目名称:pugtsdb,代码行数:13,代码来源:RollUpGranularitySteps.java

示例14: resolveTimestamp

import java.time.ZonedDateTime; //导入方法依赖的package包/类
private Timestamp resolveTimestamp(String state, long diff, String unitString) {
    ChronoUnit timestampUnit = ChronoUnit.valueOf(unitString.toUpperCase());
    ZonedDateTime timestamp = truncate(executionInstant.atZone(systemDefault()), timestampUnit);

    if (state.equalsIgnoreCase("past")) {
        timestamp = timestamp.minus(diff, timestampUnit);
    } else if (state.equalsIgnoreCase("future")) {
        timestamp = timestamp.plus(diff, timestampUnit);
    }

    return new Timestamp(timestamp.toInstant().toEpochMilli());
}
 
开发者ID:StefaniniInspiring,项目名称:pugtsdb,代码行数:13,代码来源:RollUpPurgeSteps.java

示例15: buildEmptyTicks

import java.time.ZonedDateTime; //导入方法依赖的package包/类
/**
 * Builds a list of empty ticks.
 * @param beginTime the begin time of the whole period
 * @param endTime the end time of the whole period
 * @param duration the tick duration (in seconds)
 * @return the list of empty ticks
 */
private static List<Tick> buildEmptyTicks(ZonedDateTime beginTime, ZonedDateTime endTime, int duration) {

    List<Tick> emptyTicks = new ArrayList<>();

    Duration tickDuration = Duration.ofSeconds(duration);
    ZonedDateTime tickEndTime = beginTime;
    do {
        tickEndTime = tickEndTime.plus(tickDuration);
        emptyTicks.add(new BaseTick(tickDuration, tickEndTime));
    } while (tickEndTime.isBefore(endTime));

    return emptyTicks;
}
 
开发者ID:ta4j,项目名称:ta4j,代码行数:21,代码来源:CsvTradesLoader.java


注:本文中的java.time.ZonedDateTime.plus方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。