DateTime 物件

datetime 模組提供各種日期和時間物件。在使用任何這些函式之前,必須將標頭檔 datetime.h 引入於原始碼中(請注意,Python.h 並無引入該標頭檔),且巨集 PyDateTime_IMPORT 必須被叫用,而這通常作為模組初始化函式的一部分。該巨集將指向 C 結構的指標放入靜態變數 PyDateTimeAPI 中,該變數會被以下巨集使用。

PyDateTime_IMPORT()

引入 datetime C API。

成功時填充 (populate) PyDateTimeAPI 指標。失敗時將 PyDateTimeAPI 設為 NULL 並設定一個例外。呼叫者必須透過 PyErr_Occurred() 檢查是否發生錯誤:

PyDateTime_IMPORT;
if (PyErr_Occurred()) { /* cleanup */ }

警告

這和子直譯器 (subinterpreters) 不相容。

type PyDateTime_CAPI

包含 datetime C API 欄位的結構。

此結構的欄位為私有且可能會變動。

不要直接使用這個;請改用 PyDateTime_* API。

PyDateTime_CAPI *PyDateTimeAPI

動態配置的物件,包含 datetime C API。

此變數僅在 PyDateTime_IMPORT 成功後可用。

type PyDateTime_Date

PyObject 子型別代表 Python date 物件

type PyDateTime_DateTime

PyObject 子型別代表 Python datetime 物件

type PyDateTime_Time

PyObject 子型別代表 Python time 物件

type PyDateTime_Delta

PyObject 子型別代表兩個 datetime 物件的差值

PyTypeObject PyDateTime_DateType

PyTypeObject 實例代表 Python date 型別,與 Python layer 中的 datetime.date 是同一物件

PyTypeObject PyDateTime_DateTimeType

PyTypeObject 實例代表 Python datetime 型別,與 Python layer 中的 datetime.datetime 是同一物件

PyTypeObject PyDateTime_TimeType

PyTypeObject 實例代表 Python time 型別,與 Python layer 中的 datetime.time 是同一物件

PyTypeObject PyDateTime_DeltaType

PyTypeObject 實例代表 Python 兩個 datetime 物件的型別,與 Python layer 中的 datetime.timedelta 是同一物件

PyTypeObject PyDateTime_TZInfoType

PyTypeObject 實例代表 Python 時區資訊型別,與 Python layer 中的 datetime.tzinfo 是同一物件

用於存取 UTC 單例 (singleton) 的巨集:

PyObject *PyDateTime_TimeZone_UTC

回傳表示 UTC 的時區單例,是與 datetime.timezone.utc 相同的物件。

在 3.7 版被加入.

型別檢查巨集:

int PyDate_Check(PyObject *ob)

如果 ob 的型別為 PyDateTime_DateTypePyDateTime_DateType 的子型別,則回傳 true。 ob 不得為 NULL。這個函式一定會執行成功。

int PyDate_CheckExact(PyObject *ob)

如果 ob 的型別為 PyDateTime_DateType,則回傳 true。 ob 不得為 NULL。這個函式一定會執行成功。

int PyDateTime_Check(PyObject *ob)

如果 ob 的型別為 PyDateTime_DateTimeTypePyDateTime_DateTimeType 的子型別,則回傳 true。ob 不得為 NULL。這個函式一定會執行成功。

int PyDateTime_CheckExact(PyObject *ob)

如果 ob 的型別為 PyDateTime_DateTimeType,則回傳 true。ob 不得為 NULL。這個函式一定會執行成功。

int PyTime_Check(PyObject *ob)

如果 ob 的型別為 PyDateTime_TimeTypePyDateTime_TimeType 的子型別,則回傳 true。ob 不得為 NULL。這個函式一定會執行成功。

int PyTime_CheckExact(PyObject *ob)

如果 ob 的型別為 PyDateTime_TimeType,則回傳 true。ob 不得為 NULL。這個函式一定會執行成功。

int PyDelta_Check(PyObject *ob)