Spec-Zone.ru › Python 3.13

API C для PyTime

Добавлено в версии 3.13.

API C для работы с часами предоставляет доступ к системным часам. Оно аналогично модулю Python time.

Сведения об API C, связанном с модулем datetime, см. в разделе Объекты даты и времени.

Типы

type PyTime_t

Метка времени или длительность в наносекундах, представленная знаковым 64-разрядным целым числом.

Точка отсчёта для меток времени зависит от используемых часов. Например, PyTime_Time() возвращает метки времени относительно эпохи UNIX.

Поддерживаемый диапазон составляет примерно [-292,3 года; +292,3 года]. Если в качестве точки отсчёта использовать эпоху Unix (1 января 1970 года), поддерживаемый диапазон дат составит примерно [1677-09-21; 2262-04-11]. Точные пределы представлены константами:

PyTime_t PyTime_MIN

Минимальное значение PyTime_t.

PyTime_t PyTime_MAX

Максимальное значение PyTime_t.

Функции часов

Следующие функции принимают указатель на PyTime_t и устанавливают в него значение определённых часов. Подробная информация о каждом типе часов приведена в документации соответствующей функции Python.

В случае успеха функции возвращают 0, а в случае ошибки — -1 (и устанавливают исключение).

При переполнении целого числа они устанавливают исключение PyExc_OverflowError и присваивают *result значение, ограниченное диапазоном [PyTime_MIN; PyTime_MAX]. (В современных системах переполнение целого числа, скорее всего, вызвано неправильной настройкой системного времени.)

Как и любые другие функции API C (если не указано иное), эти функции необходимо вызывать, удерживая GIL.

int PyTime_Monotonic(PyTime_t *result)

Считывает монотонные часы. Важные сведения об этих часах см. в разделе time.monotonic().

int PyTime_PerfCounter(PyTime_t *result)

Считывает счётчик производительности. Важные сведения об этих часах см. в разделе time.perf_counter().

int PyTime_Time(PyTime_t *result)

Считывает время «настенных часов». Подробные сведения об этих часах см. в разделе time.time().

Функции необработанных часов

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

В случае успеха функции возвращают 0.

В случае ошибки они устанавливают *result в значение 0 и возвращают -1, не устанавливая исключение. Чтобы узнать причину ошибки, захватите GIL и вызовите обычную функцию (не Raw). Обратите внимание, что обычная функция может завершиться успешно, даже если функция Raw завершилась ошибкой.

int PyTime_MonotonicRaw(PyTime_t *result)

Аналогична PyTime_Monotonic(), но не устанавливает исключение при ошибке и не требует удерживать GIL.

int PyTime_PerfCounterRaw(PyTime_t *result)

Аналогична PyTime_PerfCounter(), но не устанавливает исключение при ошибке и не требует удерживать GIL.

int PyTime_TimeRaw(PyTime_t *result)

Аналогична PyTime_Time(), но не устанавливает исключение при ошибке и не требует удерживать GIL.

Функции преобразования

double PyTime_AsSecondsDouble(PyTime_t t)

Преобразует метку времени в количество секунд типа C double.

Функция не может завершиться ошибкой, но следует учитывать, что точность double ограничена для больших значений.

© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/time.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API