ホームページ >Java >&#&チュートリアル >Active Directory の日付を解析するときに、SimpleDateFormat がすべての日付を 1 月に割り当てるのはなぜですか?

Active Directory の日付を解析するときに、SimpleDateFormat がすべての日付を 1 月に割り当てるのはなぜですか?

DDD
DDDオリジナル
2024-10-24 07:50:02400ブラウズ

Why is SimpleDateFormat Assigning All Dates to January When Parsing Active Directory Dates?

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

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