> Java > java지도 시간 > Android에서 날짜를 구문 분석할 때 java.text.ParseException을 수정하는 방법은 무엇입니까?

Android에서 날짜를 구문 분석할 때 java.text.ParseException을 수정하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-19 10:18:15
원래의
904명이 탐색했습니다.

How to Fix java.text.ParseException When Parsing Dates in Android?

날짜 구문 분석 오류: SimpleDateFormat을 사용한 java.text.ParseException

문제 설명

Android에서 SimpleDateFormat을 사용하여 날짜 문자열을 구문 분석할 때 다음 오류가 발생합니다. 발생:

java.text.ParseException: Unparseable date: "24 Oct 2016 7:31 pm" (at offset 3)
로그인 후 복사

해결책: 지정 SimpleDateFormat을 사용한 로케일 및 사용자 정의 형식에 DateTimeFormatter 사용

오류를 해결하려면 SimpleDateFormat을 사용할 때 로케일을 명시적으로 지정하는 것이 중요합니다. 이렇게 하면 날짜 형식이 로케일 규칙에 따라 올바르게 해석됩니다.

또한 향상된 기능을 제공하고 오래된 버전으로 인한 잠재적인 문제를 제거하는 최신 Java 8 날짜 및 시간 API로 전환하는 것이 좋습니다. SimpleDateFormat과 같은 API.

사용자 정의 날짜 형식의 경우 SimpleDateFormat 대신 DateTimeFormatter를 사용해야 합니다. 대소문자를 구분하지 않는 구문 분석을 제공하고 여러 로케일을 지원하며 전체적으로 더 유연합니다.

코드 예

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class Main {

    public static void main(String[] args) {
        String strDateTime = "24 Oct 2016 7:31 pm";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM uuuu h:m a", Locale.ENGLISH);
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf);
        System.out.println(ldt);
    }
}
로그인 후 복사

기본 로케일 함정

기본 로케일은 구문 분석 시 문제가 될 수 있습니다. 날짜는 시스템의 로케일 설정에 따라 다르기 때문입니다. 이러한 문제를 방지하려면 항상 원하는 로케일을 명시적으로 지정하십시오.

추가 참고 사항

  • Java 8 API 권장: Java 8 날짜 및 시간 API는 더 많은 기능을 제공합니다. 효율적이고 유연하며 여러 시간대를 기본적으로 지원합니다. 향상된 기능과 유지 관리를 위해 이 API로 마이그레이션하는 것이 좋습니다.
  • Java 6 및 7용 ThreeTen-Backport: Java 8로 업그레이드할 수 없는 경우 ThreeTen-Backport를 사용하여 Java 8 날짜 및 시간 기능을 Java 6 및 7로 백포트합니다.

위 내용은 Android에서 날짜를 구문 분석할 때 java.text.ParseException을 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿