Java 中從 java.util.date 轉為 java.sql.date
-
使用
getTime()將java.util.Date轉換為java.sql.Date -
使用
SimpleDateFormat和valueOf()將java.util.Date轉換為java.sql.Date
在本文中,我們將討論如何使用兩個方法 - getTime() 和 valueOf(),將 java.util.Date 轉換為 java.sql.Date。
java.util.Date 告訴了當前時刻與 1970 年 1 月 1 日 00:00:00 GMT 以來的精確毫秒。java.sql.Date 只以 JDBC 能理解的 SQL 格式告訴日期。SQL 日期只包含年、月、日,沒有時間和時區存在。
使用 getTime() 將 java.util.Date 轉換為 java.sql.Date
在第一個例子中,我們使用 java.util.Date 類的 getTime() 方法。當呼叫 getTime() 方法時,返回自 1970 年 1 月 1 日 00:00:00 GMT 以來已經過去的毫秒數。我們首先建立一個 java.util.Date 的物件,並呼叫 getTime() 方法,以 long 型別返回毫秒數。
接下來,我們建立一個 java.sql.Date 的物件,在建構函式中接受毫秒作為引數。我們傳遞 timeInMilliSeconds,我們得到 java.sql.Date 型別的 date1。
import java.util.Date;
public class UtilDateToSqlDate {
public static void main(String[] args) {
Date date = new Date();
long timeInMilliSeconds = date.getTime();
java.sql.Date date1 = new java.sql.Date(timeInMilliSeconds);
System.out.println("SQL Date: " + date1);
}
}
輸出:
SQL Date: 2021-01-22
使用 SimpleDateFormat 和 valueOf() 將 java.util.Date 轉換為 java.sql.Date
將 java.util.Date 轉換為 java.sql.Date 的另一種方法是 valueOf()。它是存在於 java.sql.Date 類中的一個靜態方法。valueOf() 接受一個字串型別的引數。這就是為什麼我們將 java.util.Date 轉換為字串的原因。
由於 java.util.Date 返回帶時間的日期,我們將 java.sql.Date 接受的日期格式化為 yyyy-MM-dd。為了格式化日期,我們建立一個 SimpleDateFormat 物件,並將格式傳遞到其建構函式中。我們呼叫 simpleDateFormat.format(date) 並將 date 作為引數傳遞給它來格式化日期。
最後,我們得到的日期是一個字串,我們可以將其作為引數傳遞給 valueOf(),並得到結果為 java.sql.Date。
import java.text.SimpleDateFormat;
import java.util.Date;
public class UtilDateToSqlDate {
public static void main(String[] args) throws IllegalArgumentException {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = simpleDateFormat.format(date);
java.sql.Date date1 = java.sql.Date.valueOf(formattedDate);
System.out.println("SQL Date: " + date1);
}
}
輸出:
SQL Date: 2021-01-22
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn