J'essaie d'insérer Java.util.Date
après l'avoir converti en Java.sql.Timestamp et j'utilise l'extrait suivant:
Java.util.Date utilDate = new Java.util.Date();
Java.sql.Timestamp sq = new Java.sql.Timestamp(utilDate.getTime());
Mais cela me donne sq
comme 2014-04-04 13:30:17.533
Est-il possible d'obtenir la sortie sans millisecondes?
Vous pouvez couper les millisecondes en utilisant un Calendar
:
Java.util.Date utilDate = new Java.util.Date();
Calendar cal = Calendar.getInstance();
cal.setTime(utilDate);
cal.set(Calendar.MILLISECOND, 0);
System.out.println(new Java.sql.Timestamp(utilDate.getTime()));
System.out.println(new Java.sql.Timestamp(cal.getTimeInMillis()));
Sortie:
2014-04-04 10:10:17.78
2014-04-04 10:10:17.0
Jetez un oeil à SimpleDateFormat
:
Java.util.Date utilDate = new Java.util.Date();
Java.sql.Timestamp sq = new Java.sql.Timestamp(utilDate.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
System.out.println(sdf.format(sq));
Le problème réside dans la façon dont vous imprimez les données de temps.
Java.util.Date utilDate = new Java.util.Date();
Java.sql.Timestamp sq = new Java.sql.Timestamp(utilDate.getTime());
System.out.println(sa); //this will print the milliseconds as the toString() has been written in that format
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(timestamp)); //this will print without ms
Je suggère d'utiliser DateUtils de la bibliothèque Apache.commons.
long millis = DateUtils.truncate(utilDate, Calendar.MILLISECOND).getTime();
Java.sql.Timestamp sq = new Java.sql.Timestamp(millis );
Édition: Correction de Calendar.MILISECOND
à Calendar.MILLISECOND
Java.util.Date utilDate = new Java.util.Date();
Java.sql.Date sqlDate = new Java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
Cela me donne la sortie suivante:
utilDate:Fri Apr 04 12:07:37 MSK 2014
sqlDate:2014-04-04