gpt4 book ai didi

java - java utc 时间可以放在 double 内吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:17:41 27 4
gpt4 key购买 nike

我有一个需要 double 的方法,我想存储 UTC 时间,我传递给这个方法的变量是一个 long。

我正在使用:

Date now = new Date();
now.getTime()

获取UTC时间。

这个值不能放入 double 中吗?

最佳答案

它会“适合”,因为 double 可以表示任何 long 值,但是对于遥远的 future 的日期会有精度损失( 100,000 年后)。

IEEE 754双重使用的 spec 最多只使用 53 位来表示数字的非指数部分。由于 long 是 64 位,粗略地说,如果 long 值超过 53 位,您可能会失去精度。

但是,53位可以准确表示当前epoch millisecond time long值,只需要41位。

在纪元时间超过 253 之前不会发生精度损失,这在 Oct 12 287396 之前不会发生。

即使在最坏的情况下,11 位的“不准确性”仍会转换为精度约为 ±1 秒的时间值(2 ^ 11 = 2048,以毫秒为单位2 秒)。


简而言之,将纪元时间转换为 double 就可以了。

关于java - java utc 时间可以放在 double 内吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556709/

27 4 0