Ваша база данных вообще не требует определенного формата даты - вы не должны вставлять данные в виде строки . Вы должны использовать подготовленное заявление и использовать setDate
. В идеале вы должны выполнять как можно меньше строковых преобразований - вам не нужно одно при получении значения из JDateChooser
, и вам не нужно при вставке в базу данных:
// Unfortunately you need to convert from java.util.Date to java.sql.Date
statement.setDate(1, new java.sql.Date(chooser.getDate().getTime()));
(Обратите внимание, что вам do потенциально необходимо помнить о часовых поясах, но это другое дело ... вы можете вызвать перегрузку setDate
, которая также требует календаря.)
Если вы вставляли (или запрашивали) данные, создавая полный оператор SQL, включая значения, вам следует прекратить это сразу . Вы не только сталкиваетесь с подобными проблемами преобразования, но также открываете себя для атак с использованием SQL-инъекций. Всегда используйте подготовленный оператор и задайте любой параметр в качестве параметров , а не включайте их в SQL.