【发布时间】:2023-04-05 13:14:01
【问题描述】:
当我尝试将 epochTime 转换为 LocalDate 时遇到此异常,其中:
1) 日期:2017-05-05 10:08:52.0
2) 对应纪元:1493959132000
LocalDate lastUpdatedDate = LocalDate.ofEpochDay(1493959132000);
例外:
java.time.DateTimeException: Invalid value for Year (valid values -999999999 - 999999999): 4090323145
at java.time.temporal.ValueRange.checkValidIntValue(ValueRange.java:330)
at java.time.temporal.ChronoField.checkValidIntValue(ChronoField.java:722)
at java.time.LocalDate.ofEpochDay(LocalDate.java:341)
我了解 java.time.LocalDate 的源代码在https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#ofEpochDay-long- 给出了此异常的事先警告
这实际上是什么意思,什么时候出现?
【问题讨论】:
-
嗯,1493959132000 天,大约是 1493959132000/365=4,093,000,000 年,如异常消息中所述。你的假设是错误的。 4,000,000,000+epochYear > 2017。纪元年是1970,所以(2017-1970)*365几乎等于17500天...
-
再一次,阅读您正在调用的方法的 javadoc 会有很大帮助。 docs.oracle.com/javase/8/docs/api/java/time/…
标签: java java-8 epoch localdate