ホームページ >Java >&#&チュートリアル >「setLenient(false)」にもかかわらず、SimpleDateFormat が「YYYY-MM-dd HH:mm」の解析に失敗するのはなぜですか?
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 サイトの他の関連記事を参照してください。