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 중국어 웹사이트의 기타 관련 기사를 참조하세요!