ホームページ >Java >&#&チュートリアル >Java SimpleDateFormat が一貫して西暦の日付で月を 1 月として解釈するのはなぜですか?
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 サイトの他の関連記事を参照してください。