Подтвердить что ты не робот

Длина System.currentTimeMillis

Всегда ли System.currentTimeMillis возвращает фиксированную длину значения. В моих окнах Core2 он возвращает 13-значное длинное значение.

Из своего API:

Возвращает текущее время в миллисекундах. Обратите внимание, что хотя единица времени возвращаемого значения равна миллисекунде, степень детализации зависит от базовой операционной системы и может быть больше. Например, многие операционные системы измеряют время в единицах десятков миллисекунд.

4b9b3361

Ответ 1

System.currentTimeMillis() возвращает число миллисекунд с эпохи, т.е. с полуночи UTC 1 января 1970 года.

Вы можете проверить, когда число миллисекунд с эпохи было 13 десятичных цифр в первый раз. Это произошло на

Sep 9 2001 at 01: 46: 40.000 UTC (1'000'000'000'000 мс с эпохи)

Вы также можете проверить, когда число миллисекунд, так как эпоха будет 13 десятичных цифр в последний раз. Это произойдет на

20 ноября 2286 в 17: 46: 39.999 UTC (9'999'999'999'999 мс с эпохи)

Таким образом, между этими двумя датами функция всегда будет возвращать 13 знака десятичной цифры, считая, что машина правильно установила текущее время.

Итак, вы в безопасности с предположением, что возвращаемое значение составляет 13 десятичных цифр больше, чем в течение следующих двух столетий.

Ответ 2

Он возвращает 63-значное двоичное число (это фактически 64-разрядное число со знаком, которое всегда положительно, поэтому верхний бит никогда не устанавливается). Многие из ведущих цифр будут равны нулю. Когда вы конвертируете его в десятичный, любые ведущие нули обычно отбрасываются. Таким образом, число десятичных цифр будет меняться.