簡體   English   中英

當我根據機器時間從數據庫中檢索到java.util.date(毫秒)時,Hibernate是否會對其進行調整?

[英]Does Hibernate adjusting java.util.date (milliseconds) when I retrieve it from the db based on machine time?

因此,我們使用Hibernate進行對象關系映射,並且有一個Student.java(POJO)和一個registrationDate( java.util.date )。 我們用日期' 2012-01-05 10:00:00 '保存該學生對象,當我們查看該數據庫時,它看起來很正確。

問題是,當我們從數據庫( student.getRegistrationDate )取回它時,而不是在格林尼治標准時間返回正確的毫秒數時,它會根據我們的時區(我們的時區-3,錯誤的日期是' 2012-01-05 13:00:00 ')。 現在這不是java.util.date的正常行為,因為它不包含時區信息,因此我擔心Hibernate是否實際上正在調整date對象中的毫秒數以匹配服務器本地時間,或者它可能是還有什么?

注意:我通過使用date.getTime而不是date.ToString來獲取日期。

如果您想將其用作時間戳,請使用java.sql.Timestamp而不是java.util.Date(假定為祖魯時間),這將正確處理時區。

或者您可以嘗試使用joda Time,但是使用Hibernate和JodaTime,您可能需要進行一些工作才能看到此信息

轉換發生在運行時區應用程序時。 如您所知,解決方法。 進行檢查-http://community.jboss.org/wiki/UserTypeForNon-defaultTimeZone

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM