2

ミリ秒から時間を変換しましたが、その時間値で SQL 挿入を作成したいと思います。私はこれを試しましたが、うまくいきません:

        String INSERT_RECORD ="INSERT INTO PRAVIDLA (CAS,DEN,MIESTNOST,STAV) values(?,?,?,?)";
        PreparedStatement pstmt = con.prepareStatement(INSERT_RECORD);

        Calendar calendar1 = Calendar.getInstance(TimeZone.getTimeZone("UTC"));       
        calendar1.setTimeInMillis(milli);
        Time Cas2 = (Time) calendar1.getTime();

        pstmt.setTime(1, Cas2);
        pstmt.setInt(2, DEN);
        pstmt.setString(3, MIESTNOST);
        pstmt.setString(4, STAV);
        pstmt.executeUpdate();

何か提案はありますか?

4

5 に答える 5

9

java.sql.Timeを拡張java.util.Dateするので、単純にキャストすることはできません。

あなたはこのようなことを試すことができます:

Time time = new Time(date.getTime());
于 2013-03-04T17:20:16.573 に答える
5

以下は、同様の問題が発生したときに私が行ったことです。

java.util.Date utilDate = new java.util.Date("mm/dd/yyyy");
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

「mm/dd/yyyy」を実際の日付に置き換えます

于 2013-03-04T17:24:38.943 に答える
0

calendar1.getTime()Dateオブジェクトを返し、TimeはのサブクラスでDateあるため、DateをにキャストすることはできませんTime。代わりにこれを試すことができます:

Time Cas2 = new Time(calendar1.getTimeInMillis());
于 2013-03-04T17:20:12.923 に答える
0
public class Time extends java.util.Date

にキャストDateすることはできませんTime

代わりにこれを使用できます:

Time time = new Time(date.getTime())
于 2013-03-04T17:20:26.943 に答える
0

これを試すことができます。私はコードをテストしていません。

Time time = new Time(calendar.get(Calendar.MILLISECOND) 
            + calendar.get(Calendar.ZONE_OFFSET));

ゾーン オフセットを差し引く必要がある場合があります。

于 2013-03-04T17:23:57.427 に答える