у меня есть постоянный объект с полем LocalTime
, сопоставленным со столбцом time without time zone
в таблице postgre, я заполняю это поле в своем приложении следующим образом:
int hour = 10
int minutes = 12
MyEntity e = new MyEntity()
e.setTime(new LocalTime(hour, minutes) );
затем я сохраняю объект в базе данных с помощью спящего режима, позже в приложении я извлекаю объект и отображаю поле времени, он правильно показывает 10:12
, но когда я вижу значение в таблице (используя pg-admin), он показывает: 04:12
когда это должно быть 10:12
, часовой пояс в моем jvm и в моей системе - CST (то есть UTC-6), мне кажется, что где-то в спящем режиме или jodatime мое поле времени начинает преобразовываться в мой часовой пояс как при вставке в БД, так и при получении значений, я прав? Есть ли способ предотвратить это поведение? Я использую jre 1.6.0_22, hibernate 3, joda-time 1.5.1 и joda-time-hibernate 1.2.
редактировать: забыл упомянуть, что поле отображается в спящем режиме с помощью:
type="org.joda.time.contrib.hibernate.PersistentLocalTimeAsTime"