2017-04-09 94 views
-1

我想使用稍後將要插入數據庫的解析方法將字符串轉換爲時間。但是我得到:不兼容的類型:Java.util.date不能轉換爲Java.sql.Date。任何方案?而在導入java.sql.Date,所以更改進口類java.util.Date將字符串轉換爲時間Java.sql.time錯誤

+0

你需要一個'java.sql.Time'?對於你的數據庫?哪個數據庫?如果您可以使用Java 8,那麼您可能需要檢查數據庫是否可以使用'java.time.LocalTime',或者使用'java.time'中的其他類中的一個。與Java 1.0和1.1中的舊類相比,它們通常更適合使用。 –

+0

是的,我想我是。我正在使用Mysql數據庫,我無法擺脫java.sql.Time,因爲它不接受任何其他類型的對象,而不是時間 –

+0

我離家鄉很遠,但我閱讀的方式https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html,Connector/J版本5.1支持JDBC版本4.2,如果我的記憶爲我服務,那應該足夠了它可以使用'java.time'類。如果這是正確的,你可以不使用'java.sql.Time'。雖然沒有找到它的文檔。 –

回答

0

SimpleDateFormatparse()方法返回java.util.Datejava.sql.Date進口是從java.util.Date衍生髮生,並且DateFormat.parse返回java.util.Date。因此您無法將java.util.Date分配給派生類型java.sql.Date

import java.util.Date; 
//not 
import java.sql.Date; 

OR當你使用java.sql.Datejava.util.Date都將其分配到一個全名類型的java.util.Date

java.util.Date d = sdf.parse(s); 

OR如果你需要轉換java.util.Datejava.sql.Date你可以做如下:

java.sql.Date d = new java.sql.Date(sdf.parse(s).getTime()); 

OR如果你需要轉換java.util.Datejava.sql.Time你可以做如下:

java.sql.Time d = new java.sql.Time(sdf.parse(s).getTime()); 
0

錯誤

String s = time.getText(); 
    DateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 
    Date d = sdf.parse(s); 
+0

這不起作用,因爲它返回一個Date對象,而我需要插入一個Time對象 –

+0

@RymHaouachi有什麼錯誤? –

相關問題