ホームページ >Java >&#&チュートリアル >Active Directory の日付を解析するときに、SimpleDateFormat がすべての日付を 1 月に割り当てるのはなぜですか?
SimpleDateFormat で月が誤って表示される
日付を操作する場合、データが正確に変換されることが重要です。ただし、Java の SimpleDateFormat を使用して Active Directory (AD) から抽出された日付を解析すると、すべての日付が誤って 1 月に割り当てられるという問題が発生する可能性があります。
問題
提供されたコード スニペットでは、SimpleDateFormat は次のパターン文字列で初期化されます:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");
このパターン文字列は、日付文字列の予期される形式を指定します: 年 (yyyy)、月 (MM)、および日 ( DD)。ただし、parsedDate 値は、AD 日付に含まれる実際の月に関係なく、一貫して月を 1 月として表示します。
解決策
問題は、の使用法にあります。パターン文字列には大文字の「MM」が含まれます。 SimpleDateFormat では、大文字の「MM」はフルネームとして月を表し、小文字の「MM」は 2 桁の数字として月を表します。
この問題を修正するには、小文字を使用するようにパターン文字列を変更する必要があります。 "MM":
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
小文字の "MM" を使用すると、SimpleDateFormat は月を 2 桁の数字として正しく解析し、一貫した 1 月の問題を排除します。
以上がActive Directory の日付を解析するときに、SimpleDateFormat がすべての日付を 1 月に割り当てるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。