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