Hibernate4 转换时间戳字段总是少一个小时

张睿知 发布于 2017/06/10 13:27
阅读 270
收藏 0

这几天发现一个诡异的事情,折磨了我好久,客户需要做一个学籍管理系统,填写入学时间的时候,总是会往前一天,比如2017年9月1日,总是显示成2017年8月31日,由于前端显示使用angualrjs 的fiter做的,就使用

 $filter('date')(value, "yyyy年MM月 ",'+860' );

先解决显示的问题,

然后开始排查问题,从jvm到struts通通被我排查了一遍最后发现原来是Hibernate从数据库映射到实体的时候,总是给我吃掉一个小时,想过用Date格式替换,但是系统要多平台,用Date格式不方便数据传输,所以只能用时间戳字段,这下可麻烦了,

网上说要解决这个问题,只能用Hibernate5.2,可以指定时区,不知道各位有没有什么好办法。我的Hibernate用的是4.3 传统的ssh集成。

加载中
0
紫泉-kwer
紫泉-kwer
Spring 的时间格式化注解@DateTimeFormat好像可以指定时区 你去看看 手机答的 没去验证 看你自己了
0
j
jungggle

我们都是掉8个小时,你是掉一个小时!https://my.oschina.net/u/1034046/blog/862649

0
艾恩anlige
一个小时,诡异了。难道你数据库时间不对?还是你应用程序服务器时间不对?时区差也考虑进去
0
张睿知
张睿知

找到问题了,应该是前端控件的问题,以前我用的是一个 date mask 现在换成个日历控件就好了,奇怪了,我穿给 struts 的都是 yyyy-mm-dd 并没有时分秒啊 ,怎么一个可以,一个不可以呢 !不过谢谢以上三位高手了,你们提供的回答让我有所收获。

返回顶部
顶部