날짜를 구문 분석하려고 합니다. 기본값으로 인스턴스화된 날짜-시간 포맷터 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!