>  기사  >  Java  >  Java 8의 오프셋에 콜론이 누락된 ISO 8601 문자열을 구문 분석하는 방법은 무엇입니까?

Java 8의 오프셋에 콜론이 누락된 ISO 8601 문자열을 구문 분석하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-03 08:19:02503검색

How to Parse ISO 8601 String with Missing Colon in Offset in Java 8?

Java 8 날짜에 대한 오프셋에서 콜론 없이 ISO 8601 문자열을 구문 분석

이 문제는 다음을 사용하여 ISO 8601 형식 문자열을 구문 분석하려고 할 때 발생합니다. Java 8의 새로운 날짜-시간 API를 사용하여 콜론이 없는 오프셋(예: "2018-02-13T10:20:12.120 0000").

솔루션

버그가 수정될 때까지(Java 8)

해결 방법 사용:

  • 해킹: 입력 문자열에 콜론 삽입:
<code class="java">String input = "2018-02-13T10:20:12.120+0000".replace( "+0000" , "+00:00" );
OffsetDateTime odt = OffsetDateTime.parse( input );</code>
  • 명시적인 형식 지정 패턴:
<code class="java">String input = "2018-02-13T10:20:12.120+0000" ;
DateTimeFormatter f = DateTimeFormatter.ofPattern( "uuuu-MM-dd'T'HH:mm:ss.SSSX" );
OffsetDateTime odt = OffsetDateTime.parse( input , f );</code>

버그가 수정된 경우:

해결 방법 없이 구문 분석하려면:

<code class="java">OffsetDateTime odt = OffsetDateTime.parse( "2018-02-13T10:20:12.120+0000" );</code>

추가 참고 사항:

  • java.util.Date 및 SimpleDateFormat과 같은 레거시 날짜-시간 클래스를 피하세요.
  • 오프셋에는 OffsetDateTime을 사용하고 오프셋에는 Instant를 사용하세요. UTC 값.
  • 시간대 변환의 경우 ZonedDateTime을 사용하세요.
  • 추가 예시와 정보는 스택 오버플로를 검토하세요.

위 내용은 Java 8의 오프셋에 콜론이 누락된 ISO 8601 문자열을 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.