> Java > java지도 시간 > 본문

SimpleDateFormat이 \'YYYY-MM-dd HH:mm\' 문자열에 대해 잘못된 날짜를 생성하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-02 20:43:02
원래의
423명이 탐색했습니다.

Why Does SimpleDateFormat Generate an Incorrect Date for a

SimpleDateFormat이 YYYY-MM-dd HH:mm 문자열에 대해 잘못된 날짜 시간을 생성합니다

문제:

SimpleDateFormat을 사용하여 "YYYY-MM-dd HH:mm" 형식의 문자열을 구문 분석하면 예상치 못한 날짜가 생성됩니다.

예:

<code class="java">Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
    newDate = df.parse(dateTime);
} catch (ParseException e) {
    throw new InvalidInputException("Invalid date input.");
}</code>
로그인 후 복사

실제 결과:

2012년 12월 30일 일요일 08:30:00 EST

예상 결과:

2013-03-18 08:30:00

해결 방법:

문제는 SimpleDateFormat 패턴 문자열에 있습니다. 연도 형식 지정자는 "YYYY" 대신 "yyyy"여야 합니다.

수정된 코드:

<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
로그인 후 복사

이 수정을 통해 연도는 다음과 같이 구문 분석됩니다. "YYYY-MM-dd HH:mm" 형식에 맞는 4자리 연도입니다.

위 내용은 SimpleDateFormat이 \'YYYY-MM-dd HH:mm\' 문자열에 대해 잘못된 날짜를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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