当前位置: 首页 > 知识库问答 >
问题:

将instant转换为LocalDate并获得java.time.DateTimeException:年的值无效

王飞英
2023-03-14

我将一个即时转换为LocalDate,下面是我的实现:

theInstant.atZone(ZoneId.systemDefault()).toLocalDate();

但是,我在Junit测试中遇到了异常:java.time.DateTimeException:Year的值无效(有效值-9999999999-99999999):-1000000000

有人能帮忙吗?

谢谢!

共有2个答案

潘凯
2023-03-14

一旦您有了locatdate

    LocalDate localDate = LocalDate.now();  //local date

    LocalDateTime localDateTime = localDate.atTime(10, 45, 56);  //Add time information

    ZoneId zoneId = ZoneId.of("Asia/Kolkata"); // Zone information you can present ZoneId.systemDefault() here

    ZonedDateTime zdtAtAsia = localDateTime.atZone(zoneId); // add zone information

    ZonedDateTime zdtAtET = zdtAtAsia
            .withZoneSameInstant(ZoneId.of("America/New_York")); // Same time in ET timezone
     

仅此而已!

郗缪文
2023-03-14

问题是,无论您提供了什么时刻,它都必须在-99999999到9999999999的范围内,其中0是纪元。你可以用几种方法创造一个瞬间。一是指定当前日期。

LocalDate ld = Instant.now().atZone(ZoneId.systemDefault()).toLocalDate();      
System.out.println(ld);

印刷品

2021-03-05

另一种是给它一个以某个时间单位为单位的值。这是一个秒。

    LocalDate ld = Instant.ofEpochSecond(1229998889L)
           .atZone(ZoneId.systemDefault()).toLocalDate();

印刷品

2008-12-22
            
 类似资料:
  • 我使用Java 8的新DateTime API。 如何将LocalDate转换为Instant?我有个例外 我不明白为什么。

  • 我有一个来自源代码的,根据规范,它应该是,但在类中没有看到任何方法将转换为。 最好的方法是什么?

  • 我是java.time包的新手。我有一个本地日期是2015-12-10。我需要将此转换为ZonedDateTime。时间应该是00:00:00,区域是zoneoffset.utc。 dateTimeException:无法从java.time.localDate类型的TemporalAccessor:2015-12-10获取Instant 我也试过: 这会产生意想不到的结果。 我查看了API并尝试

  • 我正在使用简单的查询从数据库中检索用户信息。 然后,我尝试获取一个名为isconfired的列(在数据库中表示为位类型列)的值,并将其转换为bool。 然后我得到一个FormatException错误,指出“输入字符串的格式不正确”。 我看到了一个类似的问题,其答案提供了以下代码: 但这不适用于我的案例,因为我不知道isconfired列的索引,也不想知道它。我想使用列名。

  • 问题内容: 我正在使用JodaTime 1.6.2。 我有一个需要转换为(Joda)或进行映射的a。 原因是我想出了如何在a 和a 之间进行转换: 因此,如果我可以在和之间进行转换,则可以继续转换为。感谢您朝着正确的方向前进! 问题答案: 乔达时间 要将JodaTime转换为,只需执行 要将JodaTime转换为,只需执行 Java时间 要将Java8转换为,只需执行 要将Java8转换为,只需执

  • 我想把这个(字符串)s1转换成模式的LocalDate(LocalDate-dd/mm/yyy) 输出-25/07/1992应该是LocalDate类型,而不是字符串