2013-03-04 6 views
1

J'ai le temps converti de millis et maintenant je voudrais faire un insertion de SQL avec cette valeur de temps. J'ai essayé ceci mais cela ne fonctionne pas:Java: java.util.date ne peut pas être converti en 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(); 

Des suggestions s'il vous plaît?

+0

Vous ne pouvez pas simplement jeter différents types comme ça. Utilisez les champs de 'Date' pour créer un nouveau' Time'. –

+0

@SotiriosDelimanolis avez-vous déjà travaillé avec 'java.sql.Time'? Parce qu'il n'y a pas d'argument 'java.util.Date' à transmettre à son constructeur. –

+1

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

Répondre

4

Ce qui suit est ce que j'ai fait quand j'ai eu un problème similaire.

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

Substitut une date réelle pour "mm/jj/aaaa"

0

calendar1.getTime() retourne un objet Date et Time est une sous-classe de Date, donc un Date ne peut pas être jeté dans un Time. Vous pouvez essayer ceci:

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

java.sql.Time étend java.util.Date, de sorte que vous ne pouvez pas simplement le jeter.

Vous pouvez essayer quelque chose comme ceci:

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

@LuiggiMendoza Correction, en utilisant maintenant un autre constructeur. – BloodShura

0
public class Time extends java.util.Date 

Il est impossible de jeter Date à Time.

Vous pouvez utiliser ceci:

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

Vous pouvez essayer. Je n'ai pas testé le code.

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

Vous devrez peut-être soustraire le décalage de zone.

Questions connexes