2016-06-27 2 views
0

У меня есть одно поле даты для сохранения даты в поле БД и даты должно быть в формате даты и времени (MM/dd/yyyy HH: mm: ss) .. для этого я использую DateFormat для преобразовать текущую дату в качестве,Преобразование даты в Java Hibernate

DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); 
     Date date = new Date(); 
     String DateStr = dateFormat.format(date); 

Здесь результат будет в формате строка и сохранить как дата объекта в БД с помощью Hibernate я должен снова преобразовать эту строку даты в Date OBJ как,

Date newdate = dateFormat.parse(DateStr); 

Итак, мой вопрос: есть ли лучший способ вернуть текущую дату вместе с временем как Дата OBJ .. а также делает Hibernate автоматически преобразует строку в Date, если мы устанавливаем тип поля в виде строки и аннотирования, как,

@Temporal(TemporalType.DATE) 
    @Column(name = "REQUESTED_DATE") 
    public String getRequestedDate() { 
     return requestedDate; 
    } 

спасибо.

+0

Просьба пояснить, вы храните это как какой-то тип TIME/DATE в базе данных? И почему вы не используете только поле Date в Java, а не String? – creechy

+0

Привет, creechy..i хочу сохранить текущую дату вместе со временем. Я не был уверен в том, как это сделать, поскольку, используя новую Date(), я получаю только дату не раз. Так я использовал Dateformatter, чтобы получить дата и время, и он возвращается как строка ... Я хочу использовать поле даты в db..can u помочь мне о том, как получить текущую дату вместе со временем также. –

ответ

0

Вы можете использовать java.sql.Date для хранения значений, которые соответствуют SQL DATETIME (или варианту MySQL). Я не понимаю, почему вы говорите: «используя новую дату(), i [sic] будет получать только дату, а не время». Это неверно. Однако это не является оптимальным. Вы также можете использовать java.sql.Timestamp. Вы получаете лучшие результаты, когда используете java.util.Calendar.

Я нашел http://www.developerscrappad.com/228/java/java-ee/ejb3-jpa-dealing-with-date-time-and-timestamp/ менее чем за пять минут работы в Google, и он отвечает на ваш вопрос довольно хорошо.

1

Изменить аннотацию:

@Temporal(TemporalType.TIMESTAMP) 

это будет сохраняться время к БД.

0
@Temporal(value = TemporalType.TIMESTAMP) 
Date date; 

вы можете сохранить объект даты непосредственно в базу данных, предлагаемую вами спящим режимом. Итак, давайте избавимся от строки.

+0

теперь вы играете с датой :) –

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