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