PyTime C API

在 3.13 版本加入。

時鐘 C API 提供對系統時鐘的訪問。它類似於 Python 的 time 模組。

有關 datetime 模組的 C API,請參閱 DateTime 物件

型別

型別 PyTime_t

以納秒錶示的時間戳或持續時間,表示為帶符號的 64 位整數。

時間戳的參考點取決於所使用的時鐘。例如,PyTime_Time() 返回相對於 UNIX 紀元的時間戳。

支援的範圍大約是 [-292.3 年; +292.3 年]。以 Unix 紀元(1970 年 1 月 1 日)為參考,支援的日期範圍大約是 [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 對於大值具有有限的精度。