休眠保存到数据库 31.12.2009 23:00:00.000000 而不是 1.1.2010

发布于 2024-10-31 04:21:40 字数 533 浏览 6 评论 0原文

我有 spring + jpa + hibernate 的应用程序。有两个 joda 日期时间字段。它们作为时间戳(6)生成到数据库。

第一个设置为 DateTime() 第二个设置为 01/01/2010

如果我检查保存的值: 第一个设置为 LocalTime - 2,可能是 UTC

第二个设置为 31.12.2009 23:00:00.000000

为什么?????????

根据原作者的评论编辑

private void updateTimeStamps() 
{ 
  if (validFrom == null) { 
    validFrom = new DateTime(); 
  } 
  // if (validTill == null) { 
    validTill = new DateTime().withDate(2010, 01, 01); 
  // } 
}

但是第二个的区别是UTC偏移。

I have application with spring + jpa + hibernate. There are two joda date time fields. They are generate to database as TimeStamp(6).

The first one is set to DateTime()
The second one is set to 01/01/2010

If I check the saved values:
first one is set to LocalTime - 2 which it is probably UTC

second one is set to 31.12.2009 23:00:00.000000

WHY?????????

Edit according to comment by original author:

private void updateTimeStamps() 
{ 
  if (validFrom == null) { 
    validFrom = new DateTime(); 
  } 
  // if (validTill == null) { 
    validTill = new DateTime().withDate(2010, 01, 01); 
  // } 
}

But the difference of second one is UTC shift.

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

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

发布评论

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

评论(1

缺⑴份安定 2024-11-07 04:21:40

试试这个:

new DateTime(2010, 1, 1, 0, 0, 0, 0, DateTimeZone.UTC);

Try this:

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