ホームページ >Java >&#&チュートリアル >Java SimpleDateFormat が一貫して 1 月を返すのはなぜですか?

Java SimpleDateFormat が一貫して 1 月を返すのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 07:57:30286ブラウズ

Why Is Java SimpleDateFormat Consistently Returning January for Month?

Java SimpleDateFormat は一貫して 1 月の 1 月を返します

Active Directory の日付を Java の日付に変換しようとすると、結果には一貫して入力文字列で正しい月が指定されているにもかかわらず、月が 1 月として表示されます。この問題は、SimpleDateFormat で使用される日付形式の誤解に起因します。

変換の原因となっている問題のあるメソッドは次のとおりです。

<code class="java">private Date getParsedDate(String givenString) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");
    Date parsedDate = sdf.parse(givenString);
    return parsedDate;
}</code>

このメソッドでは、SimpleDateFormat はパターン「yyyy/MM/DD」。それぞれ年、月、日を表します。ただし、Active Directory からの入力文字列は、「yyyyMMddHHmmss.SSS」という別の形式に従います。問題のある部分は月の表現で、大文字の「MM」ではなく小文字の「mm」を使用する必要があります。

この問題を解決するには、SimpleDateFormat コンストラクターのパターン文字列を「yyyy/mm/dd」に変更する必要があります。 ":

<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd");</code>

この変更により、Java SimpleDateFormat は、givenString を正しい月の値を持つ Java Date オブジェクトに正しく変換します。

以上がJava SimpleDateFormat が一貫して 1 月を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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