首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 從 SQLite 讀取字串轉換為 java.sql.Date:Date.parse 與 SimpleDateFormat 用法

     編輯:程式設計綜合問答

資料庫存儲格式

假設資料庫欄位為 TEXT,存儲 "yyyy-MM-dd" 格式字串(如 "2023-06-15")。

讀取並轉換

public java.sql.Date getDateFromCursor(Cursor cursor, String columnName) {
    int idx = cursor.getColumnIndex(columnName);
    if (idx < 0 || cursor.isNull(idx)) return null;

    String dateStr = cursor.getString(idx); // "2023-06-15"
    try {
        // 方法一:java.sql.Date.valueOf 直接解析 yyyy-MM-dd(Java 1.1+)
        return java.sql.Date.valueOf(dateStr);
    } catch (IllegalArgumentException e) {
        // 格式不符時嘗試 SimpleDateFormat
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
            java.util.Date utilDate = sdf.parse(dateStr);
            return new java.sql.Date(utilDate.getTime());
        } catch (ParseException ex) {
            ex.printStackTrace();
            return null;
        }
    }
}

注意事項

  • java.sql.Date 繼承 java.util.Date,但僅保留日期部分(時分秒歸零)。
  • 避免使用 Date.parse(String)(已棄用、非執行緒安全、格式敏感)。
  • 若資料庫存儲完整時間戳,建議直接讀取 long 毫秒值:cursor.getLong(idx) → new java.sql.Date(ms)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved