我正在使用纪元时间格式来保存日期。我的问题是Java Long
足以处理这个问题,还是我应该考虑使用Java BigInteger
来处理纪元时间?
答案 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
开始测量。