날짜 문자열을 java.util.Date로 구문 분석하는 동안 잘못된 패턴 문자 'T'가 발생합니다
질문:
다음과 같은 날짜 문자열을 구문 분석하려고 할 때 Java Date API를 사용하는 "2010-10-02T12:23:23Z"에서는 "java.lang.IllegalArgumentException: 잘못된 패턴 문자 'T'"라는 예외가 발생합니다. 왜 이런 일이 발생하며, 문자열을 수동으로 분할하고 구문 분석해야 합니까?
답변:
문자열에서 시간을 나타내는 'T' 문자 구분 기호가 문제의 원인입니다. 이 문제를 해결하려면 패턴 문자열에서 'T' 문자를 작은따옴표('')로 이스케이프해야 합니다. 올바른 패턴은 "yyyy-MM-dd'T'hh:mm:ssZ"여야 합니다.
예:
String date = "2010-10-02T12:23:23Z"; String pattern = "yyyy-MM-dd'T'hh:mm:ssZ"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d = sdf.parse(date); System.out.println(d.getYear()); } catch (ParseException e) { e.printStackTrace(); }
또는 Java 8 이상의 경우 다음을 수행하는 것이 좋습니다. 대신 날짜 구문 분석에 더욱 강력하고 현대적인 접근 방식을 제공하는 Instant.parse를 사용하세요.
Instant.parse("2015-04-28T14:23:38.521Z")
위 내용은 Java Date API에서 '2010-10-02T12:23:23Z'를 구문 분석하면 '잘못된 패턴 문자 'T''가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!