ホームページ >Java >&#&チュートリアル >「setLenient(false)」にもかかわらず、SimpleDateFormat が「YYYY-MM-dd HH:mm」の解析に失敗するのはなぜですか?

「setLenient(false)」にもかかわらず、SimpleDateFormat が「YYYY-MM-dd HH:mm」の解析に失敗するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 06:51:30573ブラウズ

Why Does SimpleDateFormat Fail to Parse

SimpleDateFormat "YYYY-MM-dd HH:mm" の日付解析が正しくありません

Q:

SimpleDateFormat を使用して、「YYYY-MM-dd HH:mm」形式の文字列を日付に解析しようとすると、間違った日付が返されます。 setLenient(false) を設定したにもかかわらず、結果は依然として不正確です。この不一致の原因は何ですか?

A:

問題は、使用されている形式文字列「YYYY-MM-dd HH:mm」にあります。指定された形式で文字列を解析するための正しい形式文字列は、「yyyy-MM-dd HH:mm」である必要があります。「yyyy」は 4 桁の年を表します。

SimpleDateFormat のドキュメントでは、「日付部分は JDK の事前定義された形式のいずれかである必要があり、時刻部分は事前定義された時刻形式の 1 つである必要があり、日付と時刻の間の区切り文字は事前定義された区切り文字の 1 つだけにすることができます。詳細については、SimpleDateFormat のドキュメントを参照してください。

<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>

形式文字列を「yyyy-MM-dd HH:mm」に変更すると、解析によって正しい日付と時刻が生成されるはずです。

以上が「setLenient(false)」にもかかわらず、SimpleDateFormat が「YYYY-MM-dd HH:mm」の解析に失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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