2013-03-04 37 views
1

我有時間從millis轉換,現在我想使用該時間值進行SQL插入。我試過這個,但它不起作用:Java:java.util.date不能轉換爲java.sql.Time

 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

真正的約會你不能只投不同類型的這樣。使用'Date'字段創建一個新的'時間'。 – 2013-03-04 17:18:41

+0

@SotiriosDelimanolis你以前使用過'java.sql.Time'嗎?因爲沒有'java.util.Date'參數傳遞給它的構造函數。 – 2013-03-04 17:19:46

+1

Dup of http://stackoverflow.com/questions/5950806/merge-java-util-date-with-java-sql-time – mazaneicha 2013-03-04 17:20:32

回答

4

以下是我在遇到類似問題時所做的操作。

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

替代爲 「MM/DD/YYYY」

0

calendar1.getTime()返回Date對象,Time是子類的Date,所以Date不能被鑄造成Time。你可以代替試試這個:

Time Cas2 = new Time(calendar1.getTimeInMillis()); 
7

java.sql.Time延伸java.util.Date,所以你不能簡單地投它。

你可以嘗試這樣的事情:

Time time = new Time(date.getTime()); 
+0

@LuiggiMendoza固定,現在使用另一個構造函數。 – BloodShura 2013-03-04 17:21:45

0
public class Time extends java.util.Date 

這是不可能投DateTime

您可以使用它代替:

Time time = new Time(date.getTime()) 
0

你可以試試這個。我沒有測試代碼。

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

您可能必須減去區域偏移量。

相關問題