Дата хранится в местном часовом поясе - Hibernate JPA - PullRequest
4 голосов
/ 19 января 2012

Я видел несколько тем, связанных с моей проблемой, но я не мог найти способ решить мою,

У меня есть атрибут в объекте типа Date. Это определение звучит так:

@Column(name="CREATION_DATETIME")
@Temporal(TemporalType.TIMESTAMP)
private Date creationDateTime

Когда я печатаю значение даты, оно находится в местном часовом поясе, что приемлемо, потому что toString () в Date использует часовой пояс по умолчанию; который будет часовым поясом, в котором работает программа. при хранении в базе данных хранится значение местного часового пояса; но я хочу, чтобы в нем было сохранено исходное значение без какого-либо преобразования часового пояса. Hibernate обрабатывает постоянство здесь. почему это происходит и как это можно решить.?

Здесь показан пример, чтобы прояснить мою проблему. Дата 2011-11-30T19: 02: 00 + 0000 хранится как 30-НОЯБРЯ-11 01.02.00.000000000 PM. местный часовой пояс CST, поэтому он делает -0600 и сохраняет его.

спасибо Санджай

1 Ответ

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

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

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

Смотри также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...