我有时间从millis转换,现在我想用这个时间值创建一个SQL Insert。我尝试了这个,但它不起作用:
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();
有什么建议吗?
答案 0 :(得分:8)
java.sql.Time
扩展java.util.Date
,因此您无法简单地投射它。
您可以尝试这样的事情:
Time time = new Time(date.getTime());
答案 1 :(得分: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”
答案 2 :(得分:0)
calendar1.getTime()
会返回Date
个对象,Time
是Date
的子类,因此Date
无法转换为Time
}}。你可以试试这个:
Time Cas2 = new Time(calendar1.getTimeInMillis());
答案 3 :(得分:0)
public class Time extends java.util.Date
无法将Date
投射到Time
。
您可以改用:
Time time = new Time(date.getTime())
答案 4 :(得分:0)
你可以试试这个。我没有测试过代码。
Time time = new Time(calendar.get(Calendar.MILLISECOND)
+ calendar.get(Calendar.ZONE_OFFSET));
您可能需要减去区域偏移量。