從String型別日期字串轉換到java.sql.Date
阿新 • • 發佈:2021-01-07
技術標籤:Java基礎util轉sql包Date資料庫插入日期字串日期轉sql.Date轉換java.sql.DateJDBC中Date日期處理
背景:比如新員工入職需要記錄日期,建立資料表的時候你選擇
date
或者datetime
在java
中處理方式是一樣的,只不過前者精確到天,後者精確都秒。
當你進行preparedStatement.setDate(5, sdHiredate);
的時候,這個sdHiredate
就是要java.sql.Date
包下的date
,但是我們輸入的入職日期只是字串"2020-01-01"
,怎麼樣從字串轉換到java.sql.Date
下的日期引數呢?
從背景中我們提取出的問題如下:
怎麼樣從輸入的String
型別日期轉換到java.sql.Date
包下的日期引數?
2個步驟
1.先String
轉為java.util.Date
2.再將java.util.Date
轉為java.sql.Date
,方法是獲取自1970年到現在的毫秒數,這樣就可以根據毫秒數生成相同的時間
可千萬別直接強制型別轉化了把java.util.Date
強轉到java.sql.Date
,雖然java.sql.Date
繼承自java.util.Date
但是直接強轉還是會報錯
Exception in thread "main" java.lang. ClassCastException: java.util.Date cannot be cast to java.sql.Date
......
.....
.....
具體正確的做法如下:
// 1.String轉為 java.util.Date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date udHiredate = null;
try {
udHiredate = simpleDateFormat. parse(strHiredate);
} catch (ParseException e) {
e.printStackTrace();
}
// 2.java.util.Date轉為java.sql.Date
long time = udHiredate.getTime();// 獲取自1970年到現在的毫秒數
java.sql.Date sdHiredate = new java.sql.Date(time);
歡迎一鍵三連~
有問題請留言,大家一起探討學習
----------------------Talk is cheap, show me the code-----------------------