Ответ 1
В (текущем) вызове CPython time.time()
floattime(NULL)
, который вызывает
_PyTime_gettimeofday_info()
, который вызывает
pygettimeofday()
где pygettimeofday()
может использовать GetSystemTimeAsFileTime()
, clock_gettime(CLOCK_REALTIME)
, gettimeofday()
в зависимости от платформы.
Несвязанный: time.time()
возвращает "секунды с эпохи" . Это время POSIX для большинства систем, поддерживаемых Python (Linux, OS X, Windows). POSIX timestamp - это не количество прошедших SI секунд с 1970-01-01T00:00:00Z
(Epoch). Хотя он очень близок (в пределах 0,000003% от Epoch). Он подсчитывает количество секунд без скачка или количество секунд UT1 (средне-солнечных).
UTC не является линейным временным масштабом относительно TAI, временными шкалами GPS (см. изображение). Вы не получите точные истекшие секунды SI из-за скачков секунд (UTC сохраняется в пределах ± 0,9 секунды UT1 (вращение Земли)). См. Также Является ли день всегда 86 400 секунд в секунду?
Некоторые операционные системы могут быть настроены на использование "правого" zoneinfo не-POSIX. time.time()
не требуется возвращать метку времени POSIX в этом случае. "правый" часовой пояс подсчитывает секунды прыжка, и поэтому разница между "правильными" метками времени и временными метками POSIX не является постоянной, например, она будет увеличиваться в июль 2015 года из-за введения положительной секунды скачка.
В принципе, "эпоха" может отличаться от эпохи POSIX, хотя Python не поддерживает такие системы.