Java 持续时间的最大值是多少

2022-09-03 05:27:28

我试图使用 Duration.ofMillis(Long.MAX_VALUE) 在 Java 8 中创建一个最大 Duration,但得到了一个很长的溢出。如果 Duration.MAX_VALUE 存在,我将如何以编程方式获取等效项?

编辑:长时间溢出可能是由于尝试增加值而不是在构造期间引起的。对于没有可重现的代码,我们深表歉意。


答案 1

简单:

Duration maxDur = ChronoUnit.FOREVER.getDuration();

答案 2

它看起来像是以秒(最多)和纳秒(最多)存储的。那么最大的持续时间是:DurationLong.MAX_VALUE999,999,999

Duration d = Duration.ofSeconds(Long.MAX_VALUE, 999_999_999);

当我打印它()时,我得到以下内容:System.out.print(d)

PT2562047788015215H30M7.999999999S

这意味着:2562047788015215小时,30分钟和7.9999999999秒。


推荐