Разбор JXDatePicker для вставки в поле даты Java DB? - PullRequest
2 голосов
/ 25 октября 2011

Я хотел бы вставить значение, полученное из этого JXDatePicker, в поле Date в Java DB. Как я должен получить ТОЛЬКО дату от этого контроллера таким образом, что время представлено в виде дд / мм / гггг и ничего больше ??!

1 Ответ

6 голосов
/ 25 октября 2011

Вы можете получить Date из JXDatePicker.getDate(), а затем использовать SimpleDateFormat для форматирования даты в требуемый формат.

Попробуйте:

SimpleDateFormat formater = new SimpleDateFormat("dd/MM/yyyy");
formater.format(myDatePicker.getDate());

Обратите внимание, что вместо mm, который вы использовали, я использовал MM для представления месяца. Пожалуйста, смотрите SimpleDateFormat javadoc для букв образца, которые вы можете использовать.

Follow-Up

Я чувствую себя вынужденным упомянуть, для полноты, что вообще плохая идея помещать отформатированные строки, представляющие даты, в базу данных; что происходит, когда вы хотите отобразить его, например, в другом формате или выполнить простое сравнение, используя SQL.

Один из способов сохранить дату / время - использовать метку времени, полученную из Date.getTime(). Вот Date класс 'getTime() javadoc :

Возвращает число миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу представленный этим объектом Date.

Хранение этого представления Date в вашей базе данных значительно упрощает создание объекта Date при получении метки времени:

Long myTimeStamp = getTimeStampFromResultSet();
Date date = new Date(myTimeStamp);

Или используйте столбец в SQL, чтобы сделать простое сравнение:

SELECT * FROM MY_TABLE WHERE MY_DATE > ?

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

Как говорится, в ваших же интересах использовать библиотеку даты и времени, например Joda Time , вместо использования ненадежных и неудобных классов Java Date или Calendar.

...