>Java >java지도 시간 >날짜를 변환할 때 SimpleDateFormat이 월을 잘못 표시하는 이유는 무엇입니까?

날짜를 변환할 때 SimpleDateFormat이 월을 잘못 표시하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-24 08:04:02491검색

Why Is SimpleDateFormat Incorrectly Displaying Months When Converting Dates?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.