2013-03-04 5 views
1

У меня есть время, преобразованное из millis, и теперь я хочу сделать SQL Insert с этим значением времени. Я пробовал это, но он не работает: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' для создания нового' Time'. –

+0

@SotiriosDelimanolis вы работали с 'java.sql.Time' раньше? Поскольку аргумент 'java.util.Date' не передается его конструктору. –

+1

Dup of http://stackoverflow.com/questions/5950806/merge-java-util-date-with-java-sql-time – mazaneicha

ответ

4

Следующее - это то, что я сделал, когда у меня была аналогичная проблема.

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

Заменитель реальная дата «мм/дд/гггг»

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

0
public class Time extends java.util.Date 

Это не представляется возможным бросить Date к Time.

Вы можете использовать вместо этого:

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

Вы можете попробовать это. Я не тестировал код.

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

Возможно, вам придется вычесть смещение зоны.

Смежные вопросы