[英]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.