String轉java.sql.Date
一 問題描述
因爲數據庫中的字段是Date,然後在網上找數據庫中的Date對應Java中的什麼類型,結果發現對應java.sql.Date【注意不是java.util.Date!!!】所以纔將pojo裏面關於時間的字段設置爲java.sql.Date類型。接着我就爲我自己埋下了坑…
有個功能實現的時候我需要將String轉換成java.sql.Date,於是我就百度搜了相關的方法:
String str = "2019-12-04";
java.sql.Date date = java.sql.Date.valueOf(str);
網上都是這樣的!!!於是我就這樣寫了【因爲我只需要年月】
String str = "201912";
java.sql.Date date = java.sql.Date.valueOf(str);
但是!出現了:IllegalArgumentException的異常
。我心想會不會是因爲-的原因,於是我這樣寫:
String str = "2019-12";
java.sql.Date date = java.sql.Date.valueOf(str);
OMG!它還是這個異常,於是我百度,發現原因
二 解決辦法
在java.sql.Date類中有一個叫valueOf(String s)的方法,它返回的方法就是你要的類型,不過它對傳入的String s有一定的顯示,必須是“yyyy-mm-dd”格式的數據。如果不是制定格式的數據,他會拋出“IllegalArgumentException”的異常。
所以我知道了,要這樣寫:
//自己拼接了日
String str = "2019-12-01";
java.sql.Date date = java.sql.Date.valueOf(str);