# 10號筆記 ###### tags: `筆記本` ## Java ### 日期轉換 如果需要將Date資料匯入資料庫(sql)時,我們可以使用setDate(),而要注意的是它所需要的date資料是『**java.sql.Date**』並不是我們以往在編譯Java時所用的『**java.util.Date**』,因此我們必須進行一個轉換的動作。 在開始示範前我們必須先知道一件事,就是『**java.util.Date**』是『**java.sql.Date**』的父類別,因此兩者皆具有getTime()方法,此方法將是我們進行轉換的關鍵。 不論是sql或是util這兩種的Date皆具有一項功能就是可以將long型式(毫秒)的資料轉成時間,而為甚麼前面我所提到的getTime()方法會是關鍵?其原因就是getTime()返回的值會以long型式。 ``` Date date = new Date(); System.out.println(date); //結果=Sun Dec 27 00:34:47 GMT+08:00 2020 System.out.println("util.Date getTime() = " + date.getTime()); //結果=1609000487259 ``` 所以轉換方法就顯而易見了,發法就是: util.Date去裝載Date資料,然後藉由getTime()將裝載的資料轉成long(毫秒),再將轉換完成的long帶入sql.Date中。 示範: ``` public static void main(String[] args) { SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); //先將日期格式化 try { java.util.Date utilDate = format.parse("2020/12/27"); //.parse()此方法的用途是可以把字串變成Date型式,但卻有可能發生例外,所以需要try/catch承接,或是拋出 System.out.println(utilDate); //結果=Sun Dec 27 00:00:00 GMT+08:00 2020,可以確認我們確實將型式轉換成功了 java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); //利用.getTime()方法將utilDate內的值轉化為long型式,放入sqlDate中 System.out.println(sqlDate); //印出結果為=2020-12-27,轉化成功 } catch (ParseException e) { e.printStackTrace(); } } ``` 在匯入csv檔置資料庫時,若有日期的欄位則可以用這方式進行轉換動作,便可順利放入資料庫。 ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up