問題の概要:
SimpleDateFormat を使用して「YYYY-MM-dd HH:mm」形式の文字列を解析しようとすると、誤った日付と時刻の結果が表示される可能性があります。具体的には、解析された日付が予想される日付と一致しない可能性があります。
質問:
SimpleDateFormat が「YYYY-MM-dd HH:mm」の日付を誤って解析するのはなぜですか形式?この問題はどのように解決できますか?
回答:
SimpleDateFormat は、大文字と小文字を区別するパターン文字を使用して入力文字列を解析します。年の形式では、「YYYY」は先頭にゼロを付けた完全な年を表し、小文字の「yyyy」は先頭にゼロを付けずに年を表します。提供されたコードでは、パターン文字「YYYY」が誤って使用されており、予期しない日付解析が行われました。
解決策:
日付と時刻を正しく解析するには、次を使用します。パターン内の小文字の「yyyy」:
<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
この修正により、コードは問題なく予想される形式で日付を解析します。
追加の考慮事項:
SimpleDateFormat を使用する場合は、パターン文字を注意深くチェックして、目的の形式と一致していることを確認してください。パターン文字とそれに対応する日付/時刻形式の完全なリストについては、Java API ドキュメントを参照してください。
データベース更新:
時間がリセットされる問題について00:00 データベース内の日付を更新する場合は、データベース列のデータ型と Java 日付オブジェクトの時刻コンポーネントに互換性があることを確認してください。データベース列に日付のみが格納されている場合、Java オブジェクトの時刻コンポーネントは挿入時に無視されます。
以上がSimpleDateFormat が「YYYY-MM-dd HH:mm」形式の日付を誤って解析するのはなぜですか?この問題はどのように解決できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。