1. 程式人生 > 實用技巧 >JDBC操作資料庫Date型別資料

JDBC操作資料庫Date型別資料

JDBC操作資料庫Date型別資料

  • 由於java原生的工具類java.util提供的Date物件與JDBC提供的Date物件並不相同
  • 分別是java.util.Datejava.sql.Date
  • java.sql.Datejava.util.Date的子類
  • 所以在進行增刪改查部分操作中,不能直接將原生工具類的Date物件直接運用到JDBC中

可以將java.sql.Date直接轉換成java.util.Date

使用SimpleDateFormat轉換

  • SimpleDateFormat可以將字串轉換成Util.Date

    //字串:自定義日期
    String str = "1999-09-09";
    //將字串轉換為Util.Date
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    //parse方法轉換
    java.util.Date date = simpleDateFormat.parse(str);
    System.out.println(date);
    
  • 也可以將Util.Date轉換成字串

    //將Date物件轉換成字串
    String dates = simpleDateFormat.format(new java.util.Date());
    System.out.println(dates);  //2020-09-14
    

將字串型別的固定日期轉換成sql.Date

  • sql.Date 不支援字串轉換,只支援毫秒值建立
  • 通過util.Date拿到固定日期的毫秒值,再轉換成sql.date
//字串:固定日期
String str = "1999-09-09";

//將字串轉換為Util.Date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//parse方法轉換
java.util.Date date = simpleDateFormat.parse(str);
System.out.println(date);

//通過util.Date拿到指定日期的毫秒值,再轉換成sql.Date
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate);

將日期轉換封裝成工具類

package com.qf.Person;

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class DateUtils {
    //1. 字串轉換成util.Date
    public static java.util.Date strToUtil(String str) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            java.util.Date date = simpleDateFormat.parse(str);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    //2. util.Date 轉換成sql.Date
    public static java.sql.Date utilToSql(java.util.Date date) {
        return new java.sql.Date(date.getTime());
    }

    //3. util.Date轉換成字串形式
    public static String utilToStr(java.util.Date date) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        return simpleDateFormat.format(date);
    }
}