> Java > java지도 시간 > 내 날짜 구문 분석이 다른 로케일에서 실패하는 이유는 무엇입니까?

내 날짜 구문 분석이 다른 로케일에서 실패하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-19 13:14:12
원래의
794명이 탐색했습니다.

Why Does My Date Parsing Fail on Different Locales?

로캘이 잘못되어 날짜를 구문 분석할 수 없습니다

날짜를 구문 분석하려고 합니다. 기본값으로 인스턴스화된 날짜-시간 포맷터 dtfmt가 포함된 시간 문자열 "2016년 10월 24일 오후 7시 31분" 로케일. 그러나 코드가 휴대폰에서 실행되면 "java.text.ParseException: Unparseable date: java.text.DateFormat.parse(DateFormat.java:579)" 메시지와 함께 ParseException 예외가 발생합니다.

이러한 원인 예외

이 예외 메시지의 중요한 세부 사항은 시스템이 날짜를 구문 분석할 때 기본 로캘을 적용하려고 시도한다는 것인데, 이는 우리가 예상했던 것과 다릅니다. 기본적으로 Android의 로케일은 시스템의 언어 및 지역 설정과 일치하도록 설정됩니다. 많은 장치의 경우 이는 영어가 아닌 로캘이므로 구문 분석이 실패하게 됩니다.

솔루션

항상 SimpleDateFormat이든 DateTimeFormatter이든 날짜-시간 포맷터를 생성할 때 로캘을 명시적으로 지정합니다. 귀하의 경우 다음과 같이 로케일을 Locale.ENGLISH로 설정할 수 있습니다:


SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);<br>

이것은 날짜-시간이 파서는 날짜-시간 문자열을 구문 분석하기 위해 영어 규칙을 사용해야 합니다. 이렇게 하면 시스템의 로케일 설정에 관계없이 동일한 날짜-시간 문자열이 올바르게 구문 분석됩니다.

위 내용은 내 날짜 구문 분석이 다른 로케일에서 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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