2017-04-09 15 views
-1

後でデータベースに挿入するparseメソッドを使用して、文字列を時刻に変換したいとします。しかし、私は取得:互換性のない型:Java.util.dateはJava.sql.Dateに変換することはできません。どんな解決策ですか?文字列を時刻に変換するJava.sql.timeエラー

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

あなたは 'java.sql.Time'が必要ですか?あなたのデータベースに?どのデータベースですか? Java 8を使用できる場合は、代わりに、データベースが 'java.time.LocalTime'を使用するか、' java.time'の他のクラスの1つを使用できるかどうかを確認することをお勧めします。 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.sql.Dateを輸入しているのに対し、java.util.Dateを返すので、java.util.Date

0

にインポートクラスを変更java.util.Dateを返すDateFormat.parsejava.sql.Dateをインポートするときjava.util.Dateから誘導され発生し、。派生タイプjava.sql.Datejava.util.Dateを割り当てることはできません。あなたは両方のjava.sql.Datejava.util.Dateを使用している場合

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

ORjava.util.Dateのフルネームタイプに割り当てます。

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

ORをあなたはあなたのように行うことができますjava.sql.Datejava.util.Dateを変換する必要がある場合以下:

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

ORあなたは次のようにあなたが行うことができますjava.sql.Timejava.util.Dateを変換する必要がある場合:

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

Timeオブジェクトを挿入する必要がある間、Dateオブジェクトを返すので、動作しません –

+0

@RymHaouachi何が間違っていますか? –

関連する問題