누군가가 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 (...)
던지다
DateTimeException-필드 값이 범위를 벗어난 경우 또는 월-년에 대한 날짜가 유효하지 않은 경우
가능한 경우 JSR-310으로 마이그레이션하는 것이 좋습니다. Java 8에 내장되어 있으며 이전 버전에 대한 백 포트가 있습니다.
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
위 예제의 문제점은 연초 -292275054-01-01
가 범위를 벗어 났기 때문에이 값을 저장할 수 없어 나머지 날짜를 구문 분석한다는 것입니다. 이론적으로는 특수한 처리로이를 수행 할 수 있지만 공룡이 살기 전의 날짜이고 MIN_VALUE 미만이므로 유효 할 것이라고 기 대해서는 안됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다