Spec-Zone.ru › Python 3.14

PyTime C API

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

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

См. Объекты DateTime, если вам нужен C API для модуля 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]. (В современных системах переполнение целого числа, вероятнее всего, вызвано неверной настройкой системного времени.)

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

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() приведены важные сведения об этих часах.

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

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

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

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

int PyTime_MonotonicRaw(PyTime_t *result)

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

int PyTime_PerfCounterRaw(PyTime_t *result)

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

int PyTime_TimeRaw(PyTime_t *result)

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

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

double PyTime_AsSecondsDouble(PyTime_t t)

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

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

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

Spec-Zone.ru

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