Java/MySQL 中沒有時間或時區的日期
儲存沒有時間或時區組件的日期時,確保不同時區和環境之間的一致性可能具有挑戰性。這是使用現代 java.time API 和相容的 MySQL 資料類型設定的解決方案。
Java.time
java.util.Date 已被 Java SE 8 中的 java.time API 取代,它具有 LocalDate 類別來表示沒有時間的日期。如Oracle 文件所述:
- 「LocalDate 表示ISO 日曆中的年月日,對於表示沒有時間的日期很有用。您可以使用LocalDate 來追蹤重要的日期事件,例如出生日期或結婚日期。 DATE ANSI SQL 類型。 Oracle 提供了一個表格概述了這種映射:
確保一致性的提示
保持一致性:
ANSI SQL |
Java SE 8 |
DATE |
LocalDate |
使用LocalDate:
表示沒有時間元件的日期為java.time.LocalDate物件。
- 解析輸入日期: 使用 LocalDate.parse(String) 或類似方法解析輸入日期。
- 儲存為 DATE: 儲存值在 MySQL 中作為 DATE 資料類型以符合 LocalDate 的表示。
- 避免字串表示形式: 不要依賴日期的字串表示形式,因為它們可能會引入時區變化。
- 遵循這些建議,您可以可靠地儲存和檢索沒有時間或時區組件的日期,從而確保一致性跨越不同的環境。
以上是如何在 Java 和 MySQL 中儲存沒有時間或時區的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!