Ответ 1
Существует метод getTime()
(неуверенный, почему он не называется getDate).
Edit: Просто понял, что вам нужен java.sql.Date. Один из ответов, которые используют cal.getTimeInMillis()
- это то, что вам нужно.
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();
Я хотел бы преобразовать cal в тип Date для вставки в таблицу.
Существует метод getTime()
(неуверенный, почему он не называется getDate).
Edit: Просто понял, что вам нужен java.sql.Date. Один из ответов, которые используют cal.getTimeInMillis()
- это то, что вам нужно.
Вы попробовали cal.getTime()
? Это получает представление даты.
Вы также можете посмотреть на javadoc.
Используйте stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()))
Преобразование легко, установка даты и времени немного сложнее. Вот пример:
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()));
Вот простой способ преобразования значений Calendar
в экземпляры 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()));
Я нашел, что этот код работает:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
Calendar calendar = new GregorianCalendar(2013,0,31);
System.out.println(sdf.format(calendar.getTime()));
вы можете найти остальные в этом учебнике:
http://www.mkyong.com/java/java-date-and-calendar-examples/