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

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

Patricia Arquette
Patricia Arquette원래의
2024-11-04 11:16:29680검색

How to Parse an ISO 8601 String with a Missing Colon in the Offset to Java 8 Date?

Java 8 날짜 오프셋에 콜론이 누락된 ISO 8601 문자열 구문 분석

문제:

Java 8의 ZonedDateTime.parse() 메소드 "2018-02-13T10:20:12.120 0000."과 같이 오프셋에 콜론이 없는 ISO 8601 형식의 날짜 문자열을 구문 분석하는 데 실패합니다.

해결책:

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

사용자 정의 패턴과 함께 DateTimeFormatter를 사용하여 오프셋에 누락된 콜론을 지정합니다.

<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>

버그가 수정된 경우:

단순히 ISO 8601 문자열을 사용하여 OffsetDateTime.parse()를 호출하면 됩니다. 패턴:

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

세부 정보:

  • OffsetDateTime 클래스는 입력 문자열에 적합한 UTC 오프셋이 있는 날짜를 나타냅니다.
  • 기본적으로 java.time은 구문 분석을 위해 ISO 8601 형식을 사용하지만
  • DateTimeFormatter를 사용하면 콜론의 존재 여부를 지정할 수 있는 사용자 정의가 가능합니다.
  • 모호함을 피하기 위해 오프셋에 콜론을 사용하는 것이 좋습니다. 항상 시간과 분을 모두 제공하세요. (0인 경우에도) 한 자리 분 왼쪽에 0을 채웁니다.

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

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