Обычно вам не важно формат даты. Если вы это сделаете, то это означает, что вы рассматриваете даты как строки, сохраняя их как String
на стороне Java и как VARCHAR
на стороне БД. Это не верно. На стороне Java они должны храниться как java.util.Date
, а на стороне БД - как DATETIME
или TIMESTAMP
или, возможно, DATE
(если вам не важна временная часть).
Обычный способ сохранить дату (со временем) - использовать PreparedStatement#setTimestamp()
:
preparedStatement = connection.prepareStatement("INSERT INTO person (birthdate) VALUES (?)");
preparedStatement.setTimestamp(1, new Timestamp(date.getTime()));
// ...
И обычный способ вернуть его - использовать ResultSet#getTimestamp()
:
Date date = resultSet.getTimestamp("birthdate");
// ...
Это не только устраняет необходимость беспокоиться о форматах строк даты по умолчанию для конкретных БД, но также позволяет более детально контролировать выбор дат с помощью >
, <
, BETWEEN
и т. Д. На стороне SQL и более тонкое форматирование даты с использованием SimpleDateFormat
на стороне Java.
Смотри также: