代码之家  ›  专栏  ›  技术社区  ›  Jin Kwon

如何获取Instant#EpochSecond(?)的最大值

  •  1
  • Jin Kwon  · 技术社区  · 11 月前

    我刚刚发现 Instant#ofEpochSecond(epochSecond) 具有最小/最大值。

    源代码来了。

    // 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!
    

    我怎样才能拿到 MAX_SECOND 程序化?

    我试着和 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());
    

    没有运气。

    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
    
    1 回复  |  直到 11 月前
        1
  •  6
  •   John    11 月前

    你可以得到这样的最大/最小秒:

    import java.time.Instant;
    
    
    long maxSecond = Instant.MAX.getEpochSecond(); 
    long minSecond = Instant.MIN.getEpochSecond();