SimpleDateFormat не показывает правильный формат даты - PullRequest
1 голос
/ 21 января 2012

У меня есть поле DateTime в моей базе данных SQL, и когда я пытаюсь показать его на своей странице JSP и отформатировать, используя «dd-MM-гггг чч: мм: сс», оно корректно отображает только часть даты. Например, для даты «2012-01-19 12:13:48», хранящейся в базе данных, отображается «19-01-2012 12:00:00». В чем может быть проблема?

Код:

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
sdf.format(rs.getDate("comment_date")); //rs -> ResultSet

Ответы [ 2 ]

4 голосов
/ 21 января 2012

Из javadoc для java.sql.Date:

Чтобы соответствовать определению SQL DATE, значения миллисекунд, обернутые экземпляром java.sql.Date, должны быть «нормализованы» путем установки часов, минуты, секунды и миллисекунды до нуля в конкретном часовом поясе, с которым связан экземпляр.

Для сохранения информации о времени также следует использовать java.sql.Timestamp.Другими словами, измените rs.getDate() на rs.getTimestamp().

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

Интересная библиотека даты / времени, на которую вы могли бы взглянуть: Joda Time . Это решает многие проблемы реализации даты / времени в стандартной библиотеке.

...