Java 持续时间的最大值是多少
我试图使用 Duration.ofMillis(Long.MAX_VALUE) 在 Java 8 中创建一个最大 Duration,但得到了一个很长的溢出。如果 Duration.MAX_VALUE 存在,我将如何以编程方式获取等效项?
编辑:长时间溢出可能是由于尝试增加值而不是在构造期间引起的。对于没有可重现的代码,我们深表歉意。
我试图使用 Duration.ofMillis(Long.MAX_VALUE) 在 Java 8 中创建一个最大 Duration,但得到了一个很长的溢出。如果 Duration.MAX_VALUE 存在,我将如何以编程方式获取等效项?
编辑:长时间溢出可能是由于尝试增加值而不是在构造期间引起的。对于没有可重现的代码,我们深表歉意。
简单:
Duration maxDur = ChronoUnit.FOREVER.getDuration();
它看起来像是以秒(最多)和纳秒(最多)存储的。那么最大的持续时间是:Duration
Long.MAX_VALUE
999,999,999
Duration d = Duration.ofSeconds(Long.MAX_VALUE, 999_999_999);
当我打印它()时,我得到以下内容:System.out.print(d)
PT2562047788015215H30M7.999999999S
这意味着:2562047788015215小时,30分钟和7.9999999999秒。