本指南解決了使用 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
,因為它可以改善錯誤處理和清晰度。
以上是如何將「EEE MMM dd HH:mm:ss ZZZ yyyy」日期轉換為 MySQL 的 java.sql.Date?的詳細內容。更多資訊請關注PHP中文網其他相關文章!