java utc时间是否可以放在双精度内?
我有一个方法需要一个double,我想存储UTC时间,我传递给这个方法的变量是一个long 我正在使用:java utc时间是否可以放在双精度内?,java,utc,Java,Utc,我有一个方法需要一个double,我想存储UTC时间,我传递给这个方法的变量是一个long 我正在使用: Date now = new Date(); now.getTime() 获取UTC时间 这个值是否可以不放入一个双精度值?它将“适合”,即double可以表示任何长的值,但在遥远的将来(从现在起10万年)的日期将失去精度 双重使用的规范最多只使用53位作为数字的非指数部分。由于long是64位,粗略地说,如果long值超过53位,可能会丢失精度 但是,53位可以准确表示当前long值,
Date now = new Date();
now.getTime()
获取UTC时间
这个值是否可以不放入一个双精度值?它将“适合”,即double
可以表示任何长的值,但在遥远的将来(从现在起10万年)的日期将失去精度
双重使用的规范最多只使用53位作为数字的非指数部分。由于long是64位,粗略地说,如果long
值超过53位,可能会丢失精度
但是,53位可以准确表示当前long
值,它只需要41位
在历元时间超过253之前不会发生精度损失,而在10月12日287396之前不会发生精度损失
即使在最坏的情况下,11位“不准确”仍将转换为精度约为±1秒的时间值(2^11=2048
,以毫秒为单位是2秒的范围)
简而言之,将epoch时间转换为double
是可以的。我建议您仔细阅读Java的基本数据类型(通常是数据类型)。