Hibernate4 转换时间戳字段总是少一个小时
这几天发现一个诡异的事情,折磨了我好久,客户需要做一个学籍管理系统,填写入学时间的时候,总是会往前一天,比如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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
找到问题了,应该是前端控件的问题,以前我用的是一个 date mask 现在换成个日历控件就好了,奇怪了,我穿给 struts 的都是 yyyy-mm-dd 并没有时分秒啊 ,怎么一个可以,一个不可以呢 !不过谢谢以上三位高手了,你们提供的回答让我有所收获。
一个小时,诡异了。难道你数据库时间不对?还是你应用程序服务器时间不对?时区差也考虑进去
我们都是掉8个小时,你是掉一个小时!https://my.oschina.net/u/1034046/blog/862649
Spring 的时间格式化注解@DateTimeFormat好像可以指定时区 你去看看 手机答的 没去验证 看你自己了