Acabei de descobrir que Instant#ofEpochSecond(epochSecond)
tem valores mínimos/máximos.
Aí vem os códigos-fonte.
// Instant.java
/**
* The minimum supported epoch second.
*/
private static final long MIN_SECOND = -31557014167219200L;
/**
* The maximum supported epoch second.
*/
private static final long MAX_SECOND = 31556889864403199L; // << I WANT THIS VALUE!
Como posso obter o MAX_SECOND
programaticamente?
Eu tentei descobrir com Range
,
final var range = ChronoField.INSTANT_SECONDS.range();
log.debug(" minimum: {}", range.getMinimum());
log.debug(" largestMinimum: {}", range.getLargestMinimum());
log.debug(" maximum: {}", range.getMaximum());
log.debug("smallestMaximum: {}", range.getSmallestMaximum());
e não tem sorte.
03:53:36.120 [ main] DEBUG - minimum: -9223372036854775808
03:53:36.122 [ main] DEBUG - largestMinimum: -9223372036854775808
03:53:36.122 [ main] DEBUG - maximum: 9223372036854775807
03:53:36.122 [ main] DEBUG - smallestMaximum: 9223372036854775807
Você pode obter o segundo máximo/minuto assim: