在Java中节省纪元时间的最佳方法是什么?

时间:2014-10-12 18:40:31

标签: java datetime biginteger epoch

我正在使用纪元时间格式来保存日期。我的问题是Java Long足以处理这个问题,还是我应该考虑使用Java BigInteger来处理纪元时间?

4 个答案:

答案 0 :(得分:4)

假设你的意思是UNIX纪元,那么Java long就足够了。 UNIX epoch是自1970年1月1日以来的秒数,并以32位int存储(在UNIX中)。

答案 1 :(得分:2)

是的,很长就足够了。但就最佳方式而言,请考虑使用本机类型。

在Java< = 7中,java.util.Date就是为此而设计的。它具有毫秒精度。

在Java> = 8中,java.time.Instant是为此目的而设计的。它具有纳秒精度。

答案 2 :(得分:0)

在Java中,您可以获得自UNIX Epoch以来的毫秒数,其中System.currentTimeMillis()返回一个long,因此没有理由考虑其他内容。

答案 3 :(得分:0)

如果以epoch time为单位,您的意思是自1970年以来,那么,当然可以做得很久了,因为它可以代表毫秒,直到时间结束;-)

我的意思是,您可以改为整数。它将表示从1970年到 2038 年的时间(以秒为单位)。

如果您不需要表示现在之前的时间,请考虑使用一种特殊格式,例如here。这将帮助您代表更广阔的未来范围。

另一个表示现在之后的时间的选项是,从2021年开始通过减去秒数nowSecs - 2021Secs开始测量。