gpt4 book ai didi

java - 新日期 API - 添加纪元

转载 作者:行者123 更新时间:2023-12-01 09:52:22 25 4
gpt4 key购买 nike

我正在使用新的 Date API,出于好奇,我尝试运行以下代码:

LocalDateTime timePoint = LocalDateTime.now(ZoneId.of("Australia/Canberra"));

System.err.println(timePoint.plus(1, ChronoUnit.ERAS));

并出现以下错误:

Exception in thread "main" java.time.DateTimeException: Invalid value for Era (valid values 0 - 1): 2
at java.time.temporal.ValueRange.checkValidValue(ValueRange.java:311)
at java.time.temporal.ChronoField.checkValidValue(ChronoField.java:703)
at java.time.LocalDate.with(LocalDate.java:1023)
at java.time.LocalDate.plus(LocalDate.java:1245)
at java.time.LocalDateTime.plus(LocalDateTime.java:1194)
at pt.sibs.epms.Tester.method6(Tester.java:79)
at pt.sibs.epms.Tester.main(Tester.java:59)

这是一个错误还是我没有正确使用它?

最佳答案

The documentation您调用的 plus 方法的内容如下:

Throws: DateTimeException if the addition cannot be made

您正在使用标准 ISO 年表,它使用 IsoEra 。 ISO 年表有两个时代:

  • BCE = 当前纪元之前(0 年之前)
  • CE = 当前时代(从 0 年开始)

如果你有一个在CE中的日期,并且你尝试进入下一个时代,你会得到一个DateTimeException,因为没有下一个时代,所以无法进行添加和异常被抛出,这是根据文档,所以这不是一个错误。

关于java - 新日期 API - 添加纪元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37524600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com