ホームページ >Java >&#&チュートリアル >SimpleDateFormat で日付を変換するときに月が正しく表示されないのはなぜですか?

SimpleDateFormat で日付を変換するときに月が正しく表示されないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 08:04:02489ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。