- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据documentation for Instant ,最小 Instant 为 -1000000000-01-01T00:00Z
,因此年份为 -1000000000
,时区为 UTC
。所以我希望这个程序能够工作,并且 atOffset
是一个 noop:
import java.time.*;
public class A {
public static void main(String[] args) {
Instant i = Instant.MIN;
System.out.println(i);
System.out.println(i.atOffset(ZoneOffset.UTC));
}
}
但是它在 atOffset
上抛出此异常:
-1000000000-01-01T00:00:00Z
Exception in thread "main" java.time.DateTimeException: Invalid value for Year (valid values -999999999 - 999999999): -1000000000
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)
at java.time.LocalDateTime.ofEpochSecond(LocalDateTime.java:422)
at java.time.OffsetDateTime.ofInstant(OffsetDateTime.java:328)
at java.time.Instant.atOffset(Instant.java:1195)
at A.main(A.java:7)
这是一个错误吗?根据该验证消息,最小年份是 -999999999
,但文档显示它是 -1000000000
。
最佳答案
atOffset
返回 OffsetDateTime它有不同的最小/最大。
The minimum supported OffsetDateTime, '-999999999-01-01T00:00:00+18:00'.
The maximum supported OffsetDateTime, '+999999999-12-31T23:59:59.999999999-18:00'.
javadoc 提到这些最小/最大值源自 LocalDateTime以及最大区域偏移量,这似乎就是它们与即时不匹配的原因。
根据 Instant 的文档,Instant 双向多了一年的原因.
This is one year earlier than the minimum LocalDateTime. This provides sufficient values to handle the range of ZoneOffset which affect the instant in addition to the local date-time. The value is also chosen such that the value of the year fits in an int.
涵盖了 LocalDateTime + Offset 导致上一年时间的边缘情况。
最大实用值是转换为 Instant 的最小 OffsetDateTime,因为该日期之前的所有内容都是缓冲区,没有等效的 OffsetDateTime。
关于Java Instant 的 bug? `DateTimeException: Invalid value for Year`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54893892/
我正在研究契约(Contract)的日计数约定,并且在 30/360 约定之一中,如果日期是 2 月 28 日/29 日,我需要将其四舍五入到 30 日。由于我使用的是 LocalDate 类,它会引
我的代码运行良好。今天突然开始出现这个异常 - org.threeten.bp.DateTimeException: Field DayOfMonth cannot be printed as the
当我运行第一段时,它完全正常并生成输出。但在第二种情况下,当我运行此段 2 时,它会生成 DateTimeException : Unable to extract ZoneId from tempo
今天我发现了 Java 的 8 Hijrah 日期,我正在尝试将 Hijri 日期转换为 Gregorian 日期;我一直收到此错误: java.time.DateTimeException: Hij
根据documentation for Instant ,最小 Instant 为 -1000000000-01-01T00:00Z,因此年份为 -1000000000,时区为 UTC。所以我希望这个
这个我不是很清楚。出于某种原因,当我尝试格式化 LocalDateTime使用 DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).with
我在某些摩托罗拉设备上有一个非常奇怪的行为,其中 LocalDateTime.now() 返回 0000-00-00T00:00:00.0 和 ThreeTenABP . 代码如下: @Overrid
我想按城市 UTC 和 GMT 时间获取不带下划线。首先,我写的内容是为了获取区域 ID: List utc = new ArrayList<>(ZoneId.getAvailableZoneIds
在 Java 8 Date Time API 中,我将使用 DateTimeFormatter API 打印时间,如下所示: DateTimeFormatter timeFormatter = Dat
我尝试在Java中获取开始和结束日期,我在JCombobox中列出了从一月到十二月的月份列表,并在JCombobox中显示了年份。 首先,我已将 String 月份转换为月份数字并使用以下代码: if
我有一个使用 CodePipeline 部署在 AWS Elastic Beanstalk 上的 Spring Boot 多模块项目。 我的配置文件:web: java -jarparent/modu
我在签署 Ionic android apk 时遇到此错误,我在 Kubuntu 17.04 上,使用 Ionic 3,安装了 java 8 我得到的错误: Enter Passphrase for
我试图将 datePicker 中的日期作为字符串保存到 mysql 表中。我使用 Javafx 场景生成器创建了 datePicker,但是当我尝试以字符串格式保存日期时,它返回此错误: java.
我正在像这样解析日期:"Sat, 30 Jan 2016 00:03:00 +0300" 但在某些日期它抛出这个异常: Caused by: java.time.DateTimeException:
我正在研究地理围栏,因此我正在使用 Google 依赖项 "android-maps-utils"和"geopackage-android-map" 我在系统中安装了这些 jar 并在 pom.xml
我是一名优秀的程序员,十分优秀!