>Java >java지도 시간 >Java에서 날짜를 구문 분석할 때 '잘못된 패턴 문자 'T''를 처리하는 방법은 무엇입니까?

Java에서 날짜를 구문 분석할 때 '잘못된 패턴 문자 'T''를 처리하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-08 00:27:10968검색

How to Handle

잘못된 문자가 포함된 날짜 문자열 구문 분석

SimpleDateFormat을 사용하여 Java에서 날짜 문자열을 구문 분석하려고 하면 "잘못된 패턴" 예외가 발생할 수 있습니다. 문자 'T'". 이 문제는 날짜 문자열에 ISO 8601 표준을 따를 때 시간 구성 요소를 지정하는 'T' 문자가 포함되어 있을 때 발생합니다.

예외 원인

SimpleDateFormat 클래스는 'T'를 문자열의 날짜와 시간 부분을 구분하는 특수 문자로 해석합니다. 그러나 기본 패턴에는 'T' 문자가 포함되어 있지 않아 예외가 발생합니다.

가능한 해결 방법

이 문제를 해결하는 방법에는 여러 가지가 있습니다.

  1. 수정 패턴:

    • 패턴 문자열에서 'T' 양쪽에 작은따옴표를 추가합니다. 이렇게 하면 문자가 이스케이프되어 리터럴로 해석될 수 있습니다.
    • 예: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ")
  2. DateTimeFormatter 사용(Java 8 ):

    • Java 8에 도입된 최신 DateTimeFormatter 클래스를 사용하여 시작하세요.
    • 적절한 날짜와 시간을 사용하여 포맷터를 만듭니다. 패턴.
    • 예:

       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
       Date date = formatter.parse("2010-10-02T12:23:23Z", LocalDateTime::from);
  3. 수동 문자열 분할:

    • 위 접근 방식이 작동하지 않으면 날짜 문자열을 수동으로 분할하여 날짜 및 시간 구성요소를 별도로 구문 분석합니다.

참고:

날짜 문자열에 UTC를 나타내는 후행 'Z'가 포함된 경우 시간이 지나면 패턴의 'XXX' 부분이 포함되어 있는지 확인하세요.

개선됨 코드 샘플(이스케이프된 'T' 포함):

public static void main(String[] args) {
    String date = "2010-10-02T12:23:23Z";
    String pattern = "yyyy-MM-dd'T'hh:mm:ssXXX";
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    try {
        Date d = sdf.parse(date);
        System.out.println(d.getYear());
    } catch (ParseException e) {
        e.printStackTrace();
    }
}

위 내용은 Java에서 날짜를 구문 분석할 때 '잘못된 패턴 문자 'T''를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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