Comment convertir un calendrier en java.SQL.Date en Java?
Calendar cal;
String sql = "INSERT INTO ttable (dt) values (?);"
//dt is a dateTime field in ttable
PreparedStatement stmt = connection.prepareStatement(sql);
stmt = setDate(1,cal); //not working
stmt.execute();
stmt.close();
Je voudrais convertir cal en un type de date à insérer dans la table.
7 answers
Il existe une méthode getTime (je ne sais pas pourquoi elle n'est pas appelée getDate).
Edit: Je viens de réaliser que vous avez besoin d'un java.SQL.Date. L'une des réponses qui utilisent cal.getTimeInMillis()
est ce dont vous avez besoin.
, Avez-vous essayé cal.getTime()
? Cela obtient la représentation de la date.
Vous pouvez également regarder le javadoc.
Utiliser stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()))
La conversion est facile, le réglage de la date et de l'heure est un peu délicat. Voici un exemple:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2000);
cal.set(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.MINUTE, 1);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()));
Voici un moyen simple de convertir des valeurs Calendar
en instances Date
.
Calendar C = new GregorianCalendar(1993,9,21);
Date DD = C.getTime();
System.out.println(DD);
stmt.setDate(1, new java.sql.Date(cal.getTime().getTime()));
J'ai trouvé que ce code fonctionne:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
Calendar calendar = new GregorianCalendar(2013,0,31);
System.out.println(sdf.format(calendar.getTime()));
, Vous pouvez trouver le repos dans ce tutoriel:
http://www.mkyong.com/java/java-date-and-calendar-examples/