Восстановление даты из Hibernate TImestamp - PullRequest
0 голосов
/ 24 сентября 2011

У меня есть поле с временным типом Timestamp для сохранения даты и времени в базе данных.

@Temporal(TemporalType.TIMESTAMP)
@Column(name="date", nullable=false)
private Date date;

Но при отображении значения пользователю я просто хочу показать часть даты и сократить часть времени. Я пробовал это, но я получаю ParseException, вероятно, из-за наносекундной части метки времени Hibernate.

 SimplDateFormat sd = new SimpleDateFormat("MM/dd/yyyy");
 return sd.parse(date.toString());

Так как мне получить только дату из метки времени Hibernate? Спасибо

1 Ответ

2 голосов
/ 24 сентября 2011

Просто отформатируйте объект даты. Метод toString не гарантирует выдачу строки в формате, который затем может быть проанализирован.

String dateStr = sd.format(date);

Это даст вам строку даты в формате MM / dd / yyyy, которую вы затем сможете преобразовать обратно в дату.

Date fancyNancy = sd.parse(dateStr);

* РЕДАКТИРОВАТЬ *

Запустите этот код и убедитесь, что он печатает день, месяц и год без времени.

try {
    Date d = new Date();
    SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");
    System.out.println("Original Date: " + d);
    System.out.println("Formatted Date: " + df.parse(df.format(d)));
} catch (Exception e) {
    e.printStackTrace();
}
...