Как преобразовать календарь в java.sql.Date в Java? - PullRequest
56 голосов
/ 02 февраля 2012
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 для вставки в таблицу.

Ответы [ 7 ]

117 голосов
/ 02 февраля 2012

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

Edit: Только что понял, что вам нужна java.sql.Date.Один из ответов, который использует cal.getTimeInMillis() - это то, что вам нужно.

30 голосов
/ 02 февраля 2012

Вы пробовали cal.getTime()? Это получает представление даты.

Вы также можете посмотреть на Javadoc.

24 голосов
/ 02 февраля 2012

Использование stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()))

10 голосов
/ 02 февраля 2012

Преобразование легко, установка даты и времени немного сложнее.Вот пример:

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()));
7 голосов
/ 30 ноября 2014

Вот простой способ преобразования Calendar значений в Date экземпляров.

Calendar C = new GregorianCalendar(1993,9,21);

Date DD = C.getTime();

System.out.println(DD);
3 голосов
/ 19 октября 2015

stmt.setDate(1, new java.sql.Date(cal.getTime().getTime()));

1 голос
/ 07 октября 2014

Я нашел этот код работает:

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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...