length of System.currentTimeMillis

2022-09-01 18:31:24

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

从其 API:

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


答案 1

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

您可以检查自 epoch 以来的毫秒数何时首次为 13 位小数。这发生在

2001 年 9 月 9 日 01:46:40.000 UTC (自 epoch 以来为 1'000'000'000'000 毫秒)

您还可以检查自 epoch 以来的毫秒数最后一次是否为 13 位小数。这将发生在

Nov 20 2286 at 17:46:39.999 UTC (9'999'999'999'999'999 ms 自纪元以来)

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

因此,您可以安全地假设返回值在接下来的两个世纪中为13位十进制数字。


答案 2

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


推荐