Newsgroup: it.comp.java
Titolo: Date con jdbc

Nel mio DB ho un campo timestamp.
Salvando un valore "new Date()" nel db usando JDBC, questo viene salvato con 
la data  + il time (ore minuti secondi).
Come mai?
E' possibile salvare senza la parte time?

 ha scritto nel messaggio 
news:43fb0aa8$0$29110$5fc...@news.tiscali.it...

e definirlo date invece di timestamp?
saluti 

 ha scritto nel messaggio 
news:dtf3gt$k8c$1...@area.cu.mi.it...

mi sono dimenticato di precisare che il db e' "ereditato".
Comunque hanno detto che va bene salvare la data con i valori time a 0.
Come e' possibile costruire un simile oggetto Date? 

Se (come immagino) hai "in canna" un oggetto java.util.Date e devi
passare al java.sql.Date puoi usare il costruttore che accetta un long.


usando un framework non vedo il java.sql.Date, ma solo java.util.Date.
Comunque non e' importante, al momento vorrei solamente costruire un oggetto 
ti dipo java.util.Date, che corrisponda alla data corrente, ma ora 
(ora-minuti-secondi) di mezzanotte! 

 ha scritto nel messaggio 
news:43fb1d90$0$29098$5fc...@news.tiscali.it...

Che pappardella pero'!
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
        c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), 
c.get(Calendar.DATE), 0, 0, 0);
        return c.getTime();

> 
c> usando un framework non vedo il java.sql.Date,
????????
c> Comunque non e' importante, al momento vorrei solamente costruire
c> un oggetto ti dipo java.util.Date, che corrisponda alla data
c> corrente, ma ora (ora-minuti-secondi) di mezzanotte!
Beh, passi per un Calendar (i.e. GregorianCalendar) e usi i suoi
set() per azzerare minuti e secondi e alla fine il metodo getTime().
Per risparmiare  oggetti creati potresti  farti un metodo  statico che
continui  a usare  lo stesso  GregorianCalendar (magari  creato  in un
blocco  statico  al  carcamento  della  classe)  per  creare  un  Date
posizionato  sulla  mezzanotte partendo  da  un  Date creato  sull'ora
corrente.
0001 import java.util.*;
0002 
0003 public class Foo {
0004   final static GregorianCalendar gc = new GregorianCalendar();
0005   
0006 
0007   public static Date aMezzanotte(Date data) {
0008     gc.setTime(data);
0009     gc.set(Calendar.HOUR_OF_DAY,0);
0010     gc.set(Calendar.MINUTE,0);
0011     gc.set(Calendar.SECOND,0);
0012     gc.set(Calendar.MILLISECOND,0);
0013     return gc.getTime();
0014   }
0015 
0016   /**
0017    * Describe <code>main</code> method here.
0018    *
0019    * @param args a <code>String[]</code> value
0020    */
0021   public static final void main(final String[] args) {
0022     Date adesso = new Date();
0023     System.out.println(adesso);
0024     System.out.println(aMezzanotte(adesso));
0025     
0026   }
0027 
0028 
0029 }
-- 
 /\            ___
/___/\__|_|\_|__|___Gian Uberto Lauri_____________________
  //--\ | | \|  |   Integralista GNUslamico  
\/		    e allevatore di bug da competizione
 

Calendarcalendar  = new Calendar();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date date = calendar.getTime();

 
Ovviamente Calendar calendar  = new GregorianCalendar();

 calendar.setTimeInMillis(System.currentTimeMillis());
Queste due non si possono sostituire con "Calendar.getInstance();" ?
Se non sbaglio ritorna un'istanza con già l'ora corrente settata
bye
DKano

 ha scritto nel messaggio 
news:ZtWKf.15133$uQ4....@tornado.fastwebnet.it...

esatto.
e...grazie a tutti 

 E' possibile salvare senza la parte time?
Immagino che usi un PreparedStatement per impostare i valori da
estrarre/salvare nel database. In tale caso, usa getDate() o setDate() per
impostare il PreparedStatement al posto di getTimestamp() o setTimestamp()
Henryx