PyTime C API ¶
3.13 版添加。
The clock C API provides access to system clocks. It is similar to the Python
time
模块。
For C API related to the
datetime
module, see
日期时间对象
.
类型 ¶
-
type
PyTime_t
¶
-
A timestamp or duration in nanoseconds, represented as a signed 64-bit integer.
The reference point for timestamps depends on the clock used. For example,
PyTime_Time()returns timestamps relative to the UNIX epoch.The supported range is around [-292.3 years; +292.3 years]. Using the Unix epoch (January 1st, 1970) as reference, the supported date range is around [1677-09-21; 2262-04-11]. The exact limits are exposed as constants:
Clock Functions ¶
The following functions take a pointer to a PyTime_t that they set to the value of a particular clock. Details of each clock are given in the documentation of the corresponding Python function.
The functions return
0
当成功时,或
-1
(with an exception set) on failure.
On integer overflow, they set the
PyExc_OverflowError
exception and set
*result
to the value clamped to the
[PyTime_MIN; PyTime_MAX]
range. (On current systems, integer overflows are likely caused by misconfigured system time.)
As any other C API (unless otherwise specified), the functions must be called with the GIL held.
-
int
PyTime_Monotonic
(
PyTime_t
*
result
)
¶
-
Read the monotonic clock. See
time.monotonic()for important details on this clock.
-
int
PyTime_PerfCounter
(
PyTime_t
*
result
)
¶
-
Read the performance counter. See
time.perf_counter()for important details on this clock.
-
int
PyTime_Time
(
PyTime_t
*
result
)
¶
-
Read the “wall clock” time. See
time.time()for details important on this clock.
Raw Clock Functions ¶
Similar to clock functions, but don’t set an exception on error and don’t require the caller to hold the GIL.
On success, the functions return
0
.
On failure, they set
*result
to
0
并返回
-1
,
without
setting an exception. To get the cause of the error, acquire the GIL and call the regular (non-
Raw
) function. Note that the regular function may succeed after the
Raw
one failed.
-
int
PyTime_MonotonicRaw
(
PyTime_t
*
result
)
¶
-
类似于
PyTime_Monotonic(), but don’t set an exception on error and don’t require holding the GIL.
-
int
PyTime_PerfCounterRaw
(
PyTime_t
*
result
)
¶
-
类似于
PyTime_PerfCounter(), but don’t set an exception on error and don’t require holding the GIL.
-
int
PyTime_TimeRaw
(
PyTime_t
*
result
)
¶
-
类似于
PyTime_Time(), but don’t set an exception on error and don’t require holding the GIL.