2013-08-21 8 views
1

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

Date date = new Date(); 
hibernateObject.setDate(date); 
hibernateObject.save(date); 

Я нашел способ отформатировать его, но это действительно неопрятно и не похоже на работу:

Date finalDate = null; 
try { 
    Date date = new Date(); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
    String sDate = df.format(date); 
    finalDate = df.parse(sDate); 
} catch (ParseException pe) { 
    System.out.println("ParserException while attempting to establish date"); 
} 
hibernateObject.setDate(date); 
hibernateObject.save(date); 
+0

Какой тип данных вы пытаетесь сохранить дату как? – Thierry

+0

Столбец таблицы БД был установлен в 'DATETIME' – ThreaT

ответ

2

Попробуйте использовать это (в классе hibernateObject):

@Temporal(TemporalType.TIMESTAMP) 
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss") 
public Date getStartDate() { 
    return startDate; 
} 
public void setStartDate(Date startDate) { 
    this.startDate = startDate; 
} 

Когда вы делаете, как вы показать объект даты на самом деле не имеет каких-либо изменений. Единственное, что происходит: вы создаете String, который содержит форматированную дату. Таким образом, вы можете указать шаблон DateTimeFormat для хранения даты в этом шаблоне.

Также обратите внимание, что строка «hh» в вашем шаблоне даты на самом деле даст вам значение от 1 до 12. Это AM/PM час. Чтобы получить значение 0-24 часа, используйте вместо этого «HH» (см. http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html, «Шаблоны даты и времени»)

Смежные вопросы