ホームページ >Java >&#&チュートリアル >Java SimpleDateFormat が一貫して西暦の日付で月を 1 月として解釈するのはなぜですか?

Java SimpleDateFormat が一貫して西暦の日付で月を 1 月として解釈するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 07:58:02592ブラウズ

Why is Java SimpleDateFormat Consistently Interpreting the Month as January with AD Dates?

Java SimpleDateFormat が一貫して月を 1 月と誤認する

開発者がさまざまなソースからの日付値を扱う際、Java SimpleDateFormat クラスが次のようなインスタンスに遭遇することがあります。日付の月の部分が誤って解釈されます。この問題は、日付を Active Directory (AD) から Java 日付に変換するときに発生する可能性があります。

提供されたコード スニペットは、SimpleDateFormat を利用して AD 日付値を Java Date オブジェクトに解析します。

<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD");</code>

ただし、提供された日付形式パターン (「yyyy/MM/DD」) は、月の指定に大文字の「M」を想定しています。これは、西暦の日付値で使用される小文字の「M」と競合し、解析されたすべての日付で月が 1 月として誤って解釈されます。

問題への対処

この不一致を解決するには、コードは、月の指定に小文字の「m」を使用する、AD 日付の正しい形式パターンを採用する必要があります。さらに、日付区切り文字は AD 標準に準拠する必要があります。したがって、改訂された形式パターンは次のようになります。

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

この調整により、SimpleDateFormat は AD の日付値を正しく解析し、常に月を 1 月と誤認する問題を解決し、正確な日付変換を保証します。

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

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