import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main
(String[] args
) { ZoneId zoneId = ZoneId.systemDefault();
LocalDate today = LocalDate.now();
ZonedDateTime zdtStart = today.atStartOfDay(zoneId)
.with(LocalTime.of(16, 0));
ZonedDateTime zdtEnd = today.plusDays(1)
.atStartOfDay(zoneId)
.with(LocalTime.of(2, 0));
for(int i=0; i<=100; i++) {
ZonedDateTime zdtResult =
Instant.ofEpochMilli(
ThreadLocalRandom
.current()
.nextLong(
zdtStart.toInstant().toEpochMilli(),
zdtEnd.toInstant().toEpochMilli()
)
).atZone(zoneId);
LocalTime time = zdtResult.toLocalTime();
}
}
}
aW1wb3J0IGphdmEudGltZS5JbnN0YW50OwppbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZTsKaW1wb3J0IGphdmEudGltZS5Mb2NhbFRpbWU7CmltcG9ydCBqYXZhLnRpbWUuWm9uZUlkOwppbXBvcnQgamF2YS50aW1lLlpvbmVkRGF0ZVRpbWU7CmltcG9ydCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRMb2NhbFJhbmRvbTsKCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBab25lSWQgem9uZUlkID0gWm9uZUlkLnN5c3RlbURlZmF1bHQoKTsKICAgICAgICBMb2NhbERhdGUgdG9kYXkgPSBMb2NhbERhdGUubm93KCk7CiAgICAgICAgCiAgICAgICAgWm9uZWREYXRlVGltZSB6ZHRTdGFydCA9IHRvZGF5LmF0U3RhcnRPZkRheSh6b25lSWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC53aXRoKExvY2FsVGltZS5vZigxNiwgMCkpOwogICAgICAgIAogICAgICAgIFpvbmVkRGF0ZVRpbWUgemR0RW5kID0gdG9kYXkucGx1c0RheXMoMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0U3RhcnRPZkRheSh6b25lSWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC53aXRoKExvY2FsVGltZS5vZigyLCAwKSk7CiAgICAgICAgZm9yKGludCBpPTA7IGk8PTEwMDsgaSsrKSB7CgkgICAgICAgIFpvbmVkRGF0ZVRpbWUgemR0UmVzdWx0ID0gCgkgICAgICAgICAgICAgICAgSW5zdGFudC5vZkVwb2NoTWlsbGkoCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkTG9jYWxSYW5kb20KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3VycmVudCgpCgkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm5leHRMb25nKAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpkdFN0YXJ0LnRvSW5zdGFudCgpLnRvRXBvY2hNaWxsaSgpLCAKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6ZHRFbmQudG9JbnN0YW50KCkudG9FcG9jaE1pbGxpKCkKCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKCSAgICAgICAgICAgICAgICAgICAgICAgICkuYXRab25lKHpvbmVJZCk7CgkgICAgICAgIAoJICAgICAgICBMb2NhbFRpbWUgdGltZSA9IHpkdFJlc3VsdC50b0xvY2FsVGltZSgpOwoJICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGltZSk7CiAgICAgICAgfQogICAgfQp9