Как конвертировать календарь в java.язык SQL.Свидание на Яве?


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 в тип даты для вставки в таблицу.

7 53

7 ответов:

есть getTime метод (не уверен, почему он не называется getDate).

Edit: просто понял, что вам нужна java.язык SQL.Дата. Один из ответов, которые используют 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/