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.Timeextends 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,因此 aDate不能强制转换为 a Time。你可以试试这个:

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

无法转换DateTime.

您可以改用它:

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 回答