JDO在Date中不存储时间信息,只存储日期

发布于 2024-09-18 15:34:14 字数 612 浏览 5 评论 0原文

我使用 Google App Engine 和 Java、JDO 来实现持久性。 我有我的 Activity 对象,其 timestamp 声明为持久且类型为 java.util.Date

public class Activity ...
{ ...
  @Persistent
  private Date timestamp;
...
}

存储在数据库中的所有活动都具有正确的 dTate,但时间信息始终为零。例如,9 月 9 日星期四 00:00:00。

在其他一些 SO 帖子中(尽管与 google-app-engine 无关),我读到在某些情况下我们应该使用 java.sql.Timestamp 而不是 Date,但 GAE 仅支持 java.util.Date。

一种解决方案始终是使用“long”来存储时间信息,但是有没有更好/首选的方法来做到这一点?

I am using Google App Engine with Java, JDO for persistence.
I have my Activity object with timestamp declared as Persistent and of type java.util.Date.

public class Activity ...
{ ...
  @Persistent
  private Date timestamp;
...
}

All Activities stored in the database are seen with correct dTate but time information is always zero. e.g Thu Sep 09 00:00:00.

In some other SO post (not related to google-app-engine though), I read we should use java.sql.Timestamp instead of Date in some cases, but GAE only supports java.util.Date.

One solution is always there to use 'long' to store the time information, but is there any better/preferred way to do this ?

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

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

发布评论

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

评论(1

GRAY°灰色天空 2024-09-25 15:34:14

到目前为止我无法得到任何解决方案。正如问题中提到的,我将“日期”替换为“长”(以毫秒为单位表示时间)。

So far I could not get any solution. I replaced the 'Date' with 'long' (indicating time in milliseconds) as mentioned in the question.

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