我希望能够在Java中将1970年到2008年的基本毫秒参考值更改为 我可以节省数据库中的空间和独特的ID。
最好是Joda-Time。
假设的Java 7版本中即将推出的jsr-310实现了它。
在此链接的 The Discrete Timeline 部分中,它指出毫秒的计数已从1970年改为2008年
击><击> http://today.java.net/pub/a/today/2008/09/18/jsr-310-new-java-date-time-api.html 击>
我能看到的唯一另一个选择是每次都以数学方式实现它 我需要查阅记录。
E.g。
DateTime dt = new DateTime();
long now = dt.getMillis();
DateTime dt2 = new DateTime(2008, 1, 1, 0, 0, 0, 0);
long then = dt2.getMillis();
long smallerDate = now - then;
较小的日期将存储在数据库中
- 修改 -
所以我误读了JSR-310,但这是不可能的。
有更好的方法来节省空间然后让人头疼 处理数以千计的长期计算请求。
我想将长片记录为日期,因为我永远不会知道我会在哪里移动 DB to,也许是MySQL =&gt;甲骨文。
所以我不想要时间戳,我只想要BigInts。
答案 0 :(得分:8)
不,你不能,如果可以,这将是一个坏主意。无论数字有多大,数据库中的每个时间戳都将使用相同的空间。 (假设您将数字存储为数字而不是字符串或其他内容。)
现在,如果真的想要这个,你必须自己写。即在将它们放入数据库之前从时间戳中减去时间,并在返回时将时间添加到时间戳。但这是在寻求维护问题。 (实际上,使用时间戳而不是数据库的本机DATETIME数据类型会引发问题。)