我现在正在使用jodatime,但我最近遇到了一个问题,那就是:当我将这个值插入数据库后,我得到一个joda时间(总是带有时区偏移量),比如说2017-01-31T00:00:00.000+08:00
使用Hibernate4作为我的ORM框架),该值将自动转换为UTC时间,即1/30/2017 4:00:00 PM
(我正在使用IBM DB2,同样尝试了MySql)。当我从数据库中检索它时,它将转换回2017-01-31T00:00:00.000+08:00
。
只是想知道为什么会这样?我可以对此进行一些全局配置吗?我想在数据库中存储本地时间而不是UTC时间(类似1/31/2017 0:00:00 AM
),所以我需要更改数据库设置或在代码级别执行此操作?对这个时区处理真的没什么经验,有人可以帮帮我吗?谢谢!
答案 0 :(得分:0)
经过几个小时的调查,我终于找到了解决这个问题的方法,因为我正在使用Hibernate,我需要做的就是在hibernate config xml中添加以下行:
<property name="jadira.usertype.databaseZone">Asia/Singapore</property>
<property name="jadira.usertype.javaZone">Asia/Singapore</property>
或者:
<property name="jadira.usertype.databaseZone">jvm</property>
<property name="jadira.usertype.javaZone">jvm</property>
现在一切正常。