gpt4 book ai didi

java - JodaTime 整数最小/最大值解析

转载 作者:行者123 更新时间:2023-11-30 07:00:25 25 4
gpt4 key购买 nike

有人可以给我一些关于 JodaTime 的这种解析行为的信息吗?

String minValueString = new DateTime(Long.MIN_VALUE).toString();
System.out.println(minValueString);
DateTime minDateTime = DateTime.parse(minValueString);
System.out.println(minDateTime.toString());

打印这个,

-292275055-05-16T17:40:32.192+00:53:28

但是在解析部分抛出这个异常

org.joda.time.IllegalFieldValueException: Cannot parse "-292275055-05-16T17:40:32.192+00:53:28": Value -292275055 for year must be in the range [-292275054,292278993]

最佳答案

Java 8 的 JSR310(基于 JodaTime)具有 DateTime.MIN_VALUE 和 MAX_VALUE,不支持超出此范围的行为(正如@Magnilex 指出的那样)。

LocalDateTime.of( ... )

throws

DateTimeException - if the value of any field is out of range, or if the day-of-month is invalid for the month-year

如果可以,我建议您迁移到 JSR-310。它内置于 Java 8 中,并且有一个针对早期版本的向后移植。

https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html

上面示例的问题是年份 -292275054-01-01 的开始超出范围,因此它无法存储此值,因此它解析日期的其余部分。理论上它可以通过特殊处理来做到这一点,但由于这是恐龙出现之前的日期并且小于 MIN_VALUE,因此您不应期望它是有效的。

关于java - JodaTime 整数最小/最大值解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30598862/

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