Java 8의 초기 릴리스와 함께 java.time 패키지가 등장했습니다. 몇 초 단위로 구문 분석하는 데 문제가 있습니다. 이 문제는 초의 일부를 나타내기 위해 DateTimeFormatter 패턴에 "SS"를 추가하고 예외가 발생할 때 발생했습니다.
"SS" 패턴, 예외가 발생했습니다. 이것이 작동했어야 한다고 문서에 나와 있었기 때문에 이는 놀라운 일이었습니다.
이 문제는 나중에 Java 9에서 보고되어 수정되었습니다. 그러나 Java 9가 출시될 때까지 해결 방법이 필요합니다. . JDK 버그 보고서에 언급된 대로 다음 해결 방법을 사용할 수 있습니다.
DateTimeFormatter dtf = new DateTimeFormatterBuilder() .appendPattern("yyyyMMddHHmmss") .appendValue(ChronoField.MILLI_OF_SECOND, 3) .toFormatter();
문제의 핵심은 다음과 같은 경우 몇 초 단위로 구문 분석되는지에 있습니다. 문자가 인접해 있습니다. 인접 값 구문 분석은 숫자 표현을 가정하는appendValue(...) 메서드에서만 지원됩니다. 내부적으로 분수 부분에 사용되는appendFraction(...) 메서드는 인접 값 구문 분석을 처리하지 않습니다. 이러한 제한으로 인해 패턴에 인접한 숫자가 포함된 경우 초 단위까지 정확하게 해석할 수 없습니다.
위의 해결 방법으로 문제가 해결되지만 모든 사용 사례에 이상적이지는 않을 수 있습니다. 다른 대안은 다음과 같습니다.
Java 9에서는 문제가 해결되었습니다. 이제 "SS" 패턴을 사용하거나 ChronoField.MICRO_OF_SECOND 또는 ChronoField.NANO_OF_SECOND 필드를 사용하여 초 단위 부분을 올바르게 구문 분석할 수 있습니다.
위 내용은 Java.time은 Java 9 이전에 몇 초 단위로 구문 분석을 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!