java long 存储时间戳

存储时间打算用时间戳来存储,打算用long类型来代表时间戳,但是在用long类型存储时间戳的时候出了点问提。

在写单元测试的时候,用一个long类型来存储时间戳,发现编译器报错了

clipboard.png

刚开始猜想可能是因为long不够大,存储不了。然后用double类型来存:

clipboard.png

发现还是报错了,仔细想想不对,double存储的数量应该时很大的,不会连时间戳都存储不了。
在后面加上小数点之后,居然可以存了:

clipboard.png

加了小数点之后就能存了,仔细一想,之前没加小数点的时候他是整数,加了小数点之后变成了浮点数,猜测之前没加上小数点的时间戳是一个整形的字面值,加上小数点后是一个浮点数的字面值,之前的报错应该不是存储类型的问题,而是字面值范围超出了。

用字符串来测试:

java long 存储时间戳_第1张图片

把时间戳变成字符串的字面值,在将他解析成long类型的和int类型的,然后在把他们输出:

java long 存储时间戳_第2张图片

发现第一个long类型的成功输出了,而int类型的却报了一个number的错误.

这说明long是可以存储时间戳的,而int存储不了时间戳,所以判断之前不能存储时因为字面值为整形超出了范围。

你可能感兴趣的:(java)