Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
07 Окт 2023
2 мин
210

Конвертация java.util.Date в java.sql.Date

Основная проблема, с которой сталкиваются начинающие разработчики на Java, это конвертация даты из типа java.util.Date в java.sql.Date. Давайте рассмотрим типичный

Основная проблема, с которой сталкиваются начинающие разработчики на Java, это конвертация даты из типа java.util.Date в java.sql.Date. Давайте рассмотрим типичный пример кода, где создается объект java.util.Date и затем пытается использовать его в SQL-запросе.

java.util.Date utilDate = new java.util.Date();
PreparedStatement ps = connection.prepareStatement("INSERT INTO my_table (my_date) VALUES (?)");
ps.setDate(1, utilDate);
ps.executeUpdate();

Здесь программа выдаст ошибку компиляции на строке, где устанавливается дату в PreparedStatement, поскольку setDate() требует объект java.sql.Date, а не java.util.Date.

Однако, решение этой проблемы весьма простое. Для того чтобы преобразовать java.util.Date в java.sql.Date, нужно использовать конструктор класса java.sql.Date, который принимает в качестве параметра количество миллисекунд, прошедших с 1 января 1970 года. Это значение можно получить, вызвав метод getTime() у объекта java.util.Date.

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

Теперь объект sqlDate можно без проблем использовать в PreparedStatement:

PreparedStatement ps = connection.prepareStatement("INSERT INTO my_table (my_date) VALUES (?)");
ps.setDate(1, sqlDate);
ps.executeUpdate();

Таким образом, преобразование java.util.Date в java.sql.Date не представляет большого труда и может быть выполнено всего в одну строку кода.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий