このガイドでは、java.sql.Date
を使用して「EEE MMM dd HH:mm:ss ZZZ yyyy」形式の日付を MySQL データベースに正確に挿入するという課題に取り組みます。 よくある落とし穴は、明示的なエラーがないにもかかわらず、不正確な日付値をもたらすメソッドを使用することです。
推奨されるソリューションでは、堅牢な java.time
パッケージを利用します。
<code class="language-java">LocalDate date4 = ZonedDateTime .parse(date, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH)) .toLocalDate(); java.sql.Date date5 = java.sql.Date.valueOf(date4);</code>
このコードは、日付文字列を効率的に解析し、タイムゾーン情報を正しく処理し、それを LocalDate
に変換してから、最終的にデータベースの挿入に適した java.sql.Date
を作成します。
重要な考慮事項:
Locale
を作成するときは、常に Locale.ENGLISH
(ここでは DateTimeFormatter
) を指定して、曖昧さを回避し、異なるシステム間で一貫した解析を保証します。代わりに、SimpleDateFormat
を使用する場合 (ただし、一般的には明瞭さと堅牢さの点で java.time
が好まれます):
<code class="language-java">SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");</code>
文字の大文字と小文字 (定義どおり) に細心の注意を払い、形式パターン (「EEE MMM dd HH:mm:ss zzz yyyy」および「yyyy-MM-dd」) を入力および目的の出力に注意深く一致させることを忘れないでください。 SimpleDateFormat
ドキュメントに記載されています)。 ただし、エラー処理の改善と明確さのために、java.time
を使用することを強くお勧めします。
以上がMySQL の「EEE MMM dd HH:mm:ss ZZZ yyyy」日付を java.sql.Date に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。