@Override
    public Instant next(Instant createdAtInstant, Instant currentInstant, ZoneId zoneId) {
        Duration durationUntilNow = Duration.between(createdAtInstant, currentInstant);
        long amountOfDurationsUntilNow = durationUntilNow.toNanos() / duration.toNanos();
        return createdAtInstant.plusNanos(duration.toNanos() * (amountOfDurationsUntilNow + 1));
    }
@Test
    void intervalsAreScheduledIndependentlyOfZoneId() {
        int hour = 8;
        Instant now = Instant.now();

        Instant actualNextInstant1 = new Interval(Duration.ofHours(hour)).next(now, ZoneId.of("+02:00"));
        Instant actualNextInstant2 = new Interval(Duration.ofHours(hour)).next(now, UTC);

        assertThat(actualNextInstant1).isEqualTo(actualNextInstant2);
    }