繁体   English   中英

System.currentTimeMillis的长度

[英]length of System.currentTimeMillis

System.currentTimeMillis是否始终返回固定长度的值。 在我的Windows Core2中,它返回一个13位长的值。

从其API:

以毫秒为单位返回当前时间。 请注意,虽然返回值的时间单位是毫秒,但值的粒度取决于底层操作系统,并且可能更大。 例如,许多操作系统以几十毫秒为单位测量时间。

System.currentTimeMillis()返回自纪元以来的毫秒数,即自1970年1月1日午夜UTC以来。

您可以检查自纪元以来的毫秒数是第一次是13位十进制数字。 发生了这件事

2001年9月9日01:46:40.000 UTC(自纪元以来1'000'000'000'000 ms)

您还可以检查自epoch以来的毫秒数何时将是最后一次13位十进制数字。 这将会发生

2286年11月20日17:46:39.999 UTC(自纪元以来9'999'999'999'999 ms)

因此,在这两个日期之间,假设机器正确设置了当前时间,该函数将始终返回13位十进制数值。

因此,假设返回值为13位十进制数字超过接下来的两个世纪,那么您就是安全的。

它返回一个63位二进制数(它实际上是一个64位有符号数,它始终为正数,因此最高位永远不会设置)。 许多前导数字将为零。 将其转换为十进制时,通常会丢弃任何前导零。 因此,十进制数字的数量会有所不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM