Java SimpleDateFormat이 월을 잘못 표시함
Active Directory에서 Java로 날짜를 변환할 때 SimpleDateFormat은 올바르게 식별되었음에도 불구하고 1월의 모든 날짜를 일관되게 표시합니다. 일과 년. 제공된 코드를 조사해 보면 문제는 형식 지정 패턴에 있습니다.
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");</code>
패턴 문자열 "yyyy/MM/DD"는 연/월/일 형식을 나타냅니다. 그러나 Active Directory의 날짜 값은 연/월/일 형식으로 되어 있으며 일은 대문자로 표시되지 않습니다. 이를 수정하려면 패턴을 다음과 같이 수정해야 합니다.
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");</code>
요일에 "DD" 대신 소문자 "d"를 사용하면 Active Directory 데이터에서 날짜가 올바르게 구문 분석됩니다. 업데이트된 코드는 다음과 같습니다.
<code class="java">private Date getParsedDate(String givenString) { System.out.println("Value from AD is: " + givenString); Date parsedDate = null; String formattedString = this.formatDateString(givenString); System.out.println("Formatted String is: " + formattedString); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); try { parsedDate = sdf.parse(formattedString); System.out.println("Final date string is: " + parsedDate.toString()); } catch (ParseException ex) { ex.printStackTrace(); } return parsedDate; }</code>
이러한 조정을 통해 이제 Active Directory 날짜 문자열에서 월이 정확하게 추출됩니다.
위 내용은 날짜를 변환할 때 SimpleDateFormat이 월을 잘못 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!