Пара баллов:
- Насколько я могу судить, нет смысла хранить дату и время в двух отдельных столбцах таблицы базы данных. Я бы использовал один столбец типа данных
datetime
.
- Классы
java.util.Date
, SimpleDateFormat
, java.sql.Date
и Time
давно устарели и плохо разработаны. Лучше использовать java.time
, современный Java API даты и времени. Намного приятнее работать.
Принимая как должное, что дата и время находятся в отдельных столбцах, ваш код может выглядеть следующим образом:
LocalDateTime dateTimeNow = LocalDateTime.now(ZoneId.of("Europe/Rome"));
LocalDate dateToday = dateTimeNow.toLocalDate();
LocalTime timeNow = dateTimeNow.toLocalTime();
PreparedStatement ps
= con.prepareStatement("insert into Table1(Data, Hour) values(?, ?)");
ps.setObject(1, dateToday);
ps.setObject(2, timeNow);
ps.executeUpdate();
Это вставит одну строку, содержащую как текущий день, так и текущее время. Пожалуйста, используйте желаемый часовой пояс, в который я поместил Европу / Рим, поскольку дата и время зависят от часового пояса.
Ссылка: Обучающее руководство по Oracle: Дата и время , объясняющее, как использовать java.time
.