1. 程式人生 > 其它 >從String型別日期字串轉換到java.sql.Date

從String型別日期字串轉換到java.sql.Date

技術標籤:Java基礎util轉sql包Date資料庫插入日期字串日期轉sql.Date轉換java.sql.DateJDBC中Date日期處理

背景:比如新員工入職需要記錄日期,建立資料表的時候你選擇date或者datetimejava中處理方式是一樣的,只不過前者精確到天,後者精確都秒。
  當你進行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-----------------------