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

发布于 2021-12-01 10:55:47 字数 450 浏览 799 评论 4

这几天发现一个诡异的事情,折磨了我好久,客户需要做一个学籍管理系统,填写入学时间的时候,总是会往前一天,比如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集成。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

叹沉浮 2021-12-04 15:29:59

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

无边思念无边月 2021-12-04 15:22:33

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

私藏温柔 2021-12-04 02:06:36

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

女中豪杰 2021-12-02 01:19:46

Spring 的时间格式化注解@DateTimeFormat好像可以指定时区 你去看看 手机答的 没去验证 看你自己了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文