微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将即时转换为 LocalDate 并得到 java.time.DateTimeException: Invalid value for Year

如何解决将即时转换为 LocalDate 并得到 java.time.DateTimeException: Invalid value for Year

我将一个 Instant 转换为 LocalDate,这是我的实现:

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

但是,我在 Junit 测试中得到了异常: java.time.DateTimeException: 年的无效值(有效值 -999999999 - 999999999):-1000000000

有人可以帮忙吗?

谢谢!

解决方法

问题在于,无论您提供什么瞬间,它都必须在 -999999999 to 999999999 的范围内,其中 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
            
,

一旦您拥有 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
     

仅此而已!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?