Конвертировать SQL DateTime в Java - PullRequest
1 голос
/ 20 января 2012

У меня есть поле в моей базе данных, сохраняющее дату как DateTime.Я хочу изменить его формат на дд-мм-гггг.Вот мой нынешний код Java / JSP, но он возвращает исключение:

DateFormat formatter ;
Date date;
formatter = new SimpleDateFormat("dd-MMM-yy");
date = (Date) formatter.parse(rs.getString("play_date")); //rs -> ResultSet
//print date...

Каков наилучший способ получить дату?

Ответы [ 4 ]

2 голосов
/ 20 января 2012

Вместо: rs.getString("play_date") вы должны сделать:

rs.getDate("play_date")

, так как ваш столбец play_date имеет DATE_TIME в вашей базе данных. Нет необходимости делать разбор либо. Вы можете напрямую отображать время в формате dd-MM-yyyy, используя Формат DateFormat # (дата)

0 голосов
/ 20 января 2012

Я думаю, что вы ошиблись с

formatter = new SimpleDateFormat("dd-MMM-yy");

Вероятно, должно быть

formatter = new SimpleDateFormat("dd-MM-yy");

Только с 2 М

0 голосов
/ 20 января 2012

Если ваша база данных имеет значение в качестве поля даты / времени, вам не следует выполнять какие-либо преобразования строк вообще.Просто используйте ResultSet.getDate вместо getString - вы должны почти всегда избегать ненужных преобразований;это рецепт катастрофы.

В конце концов, данные по своей природе не имеют единого текстового представления - почему вы хотите сделать свой код хрупким перед лицом (скажем) конфигурация базы данных меняется, когда вы можете получить данные в их естественном представлении?

То же самое верно, когда вы предоставляете данные для базы данных (либо как обновления / вставки, либо как параметры запроса)- используйте значения параметров, чтобы избежать необходимости преобразования значений в строки (а также чтобы избежать внедрения SQL для значений, которые уже являются строками).

0 голосов
/ 20 января 2012

Пока время столбца равно DATETIME и ваш SQL извлекает значения этого столбца без явного преобразования их в строку, вы можете использовать метод ResultSet getDate(String).

date = rs.getDate("play_date");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...