длина System.currentTimeMillis - PullRequest
       33

длина System.currentTimeMillis

17 голосов
/ 05 февраля 2012

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

Из его API:

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

Ответы [ 2 ]

41 голосов
/ 05 февраля 2012

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

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

9 сентября 2001 г. в 01:46: 40 000 UTC (1 000 000 000 000 мс с начала эпохи)

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

20 ноября 2286 года в 17: 46: 39,999 UTC (9999999999999 мс с начала эпохи)

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

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

2 голосов
/ 05 февраля 2012

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

...