DateTime オブジェクト

datetime モジュールでは、様々な日付オブジェクトや時刻オブジェクトを提供しています。以下に示す関数を使う場合には、あらかじめヘッダファイル datetime.h をソースに include し (Python.h はこのファイルを include しません)、 PyDateTime_IMPORT マクロを、通常はモジュール初期化関数から、起動しておく必要があります。このマクロは以下のマクロで使われる静的変数 PyDateTimeAPI に C 構造体へのポインタを入れます。

Macro for access to the UTC singleton:

PyObject* PyDateTime_TimeZone_UTC

Returns the time zone singleton representing UTC, the same object as datetime.timezone.utc.

バージョン 3.7 で追加.

型チェックマクロ:

int PyDate_Check(PyObject *ob)

obPyDateTime_DateType 型か PyDateTime_DateType 型のサブタイプのオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyDate_CheckExact(PyObject *ob)

obPyDateTime_DateType 型のオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyDateTime_Check(PyObject *ob)

obPyDateTime_DateTimeType 型か PyDateTime_DateTimeType 型のサブタイプのオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyDateTime_CheckExact(PyObject *ob)

obPyDateTime_DateTimeType 型のオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyTime_Check(PyObject *ob)

obPyDateTime_TimeType 型か PyDateTime_TimeType 型のサブタイプのオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyTime_CheckExact(PyObject *ob)

obPyDateTime_TimeType 型のオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyDelta_Check(PyObject *ob)

obPyDateTime_DeltaType 型か PyDateTime_DeltaType 型のサブタイプのオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyDelta_CheckExact(PyObject *ob)

obPyDateTime_DeltaType 型のオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyTZInfo_Check(PyObject *ob)

obPyDateTime_TZInfoType 型か PyDateTime_TZInfoType 型のサブタイプのオブジェクトの場合に真を返します; obNULL であってはなりません。

int PyTZInfo_CheckExact(PyObject *ob)

obPyDateTime_TZInfoType 型のオブジェクトの場合に真を返します; obNULL であってはなりません。

以下はオブジェクトを作成するためのマクロです:

PyObject* PyDate_FromDate(int year, int month, int day)
Return value: New reference.

Return a datetime.date object with the specified year, month and day.

PyObject* PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond)
Return value: New reference.

Return a datetime.datetime object with the specified year, month, day, hour, minute, second and microsecond.

PyObject* PyTime_FromTime(int hour, int minute, int second, int usecond)
Return value: New reference.

Return a datetime.time object with the specified hour, minute, second and microsecond.

PyObject* PyDelta_FromDSU(int days, int seconds, int useconds)
Return value: New reference.

Return a datetime.timedelta object representing the given number of days, seconds and microseconds. Normalization is performed so that the resulting number of microseconds and seconds lie in the ranges documented for datetime.timedelta objects.

PyObject* PyTimeZone_FromOffset(PyDateTime_DeltaType* offset)
Return value: New reference.

Return a datetime.timezone object with an unnamed fixed offset represented by the offset argument.

バージョン 3.7 で追加.

PyObject* PyTimeZone_FromOffsetAndName(PyDateTime_DeltaType* offset, PyUnicode* name)
Return value: New reference.

Return a datetime.timezone object with a fixed offset represented by the offset argument and with tzname name.

バージョン 3.7 で追加.

以下のマクロは date オブジェクトからフィールド値を取り出すためのものです。引数は PyDateTime_Date またはそのサブクラス (例えば PyDateTime_DateTime)の インスタンスでなければなりません。引数を NULL にしてはならず、型チェックは行いません:

int PyDateTime_GET_YEAR(PyDateTime_Date *o)

年を正の整数で返します。

int PyDateTime_GET_MONTH(PyDateTime_Date *o)

月を 1 から 12 の間の整数で返します。

int PyDateTime_GET_DAY(PyDateTime_Date *o)

日を 1 から 31 の間の整数で返します。

以下のマクロは datetime オブジェクトからフィールド値を取り出すためのものです。引数は PyDateTime_DateTime またはそのサブクラスのインスタンスでなければなりません。引数を NULL にしてはならず、型チェックは行いません:

int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime *o)

時を 0 から 23 の間の整数で返します。

int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o)

分を 0 から 59 の間の整数で返します。

int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o)

秒を 0 から 59 の間の整数で返します。

int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o)

マイクロ秒を 0 から 999999 の間の整数で返します。

以下のマクロは time オブジェクトからフィールド値を取り出すためのものです。引数は PyDateTime_Time またはそのサブクラスのインスタンスでなければなりません。引数を NULL にしてはならず、型チェックは行いません:

int PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o)

時を 0 から 23 の間の整数で返します。

int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o)

分を 0 から 59 の間の整数で返します。

int PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o)

秒を 0 から 59 の間の整数で返します。

int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o)

マイクロ秒を 0 から 999999 の間の整数で返します。

以下のマクロは time delta オブジェクトからフィールド値をとりだすためのものです。引数は PyDateTime_Delta かそのサブクラスのインスタンスでなければなりません。引数を NULL にしてはならず、型チェックは行いません:

int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta *o)

日数を -999999999 から 999999999 の間の整数で返します。

バージョン 3.3 で追加.

int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o)

秒数を 0 から 86399 の間の整数で返します。

バージョン 3.3 で追加.

int PyDateTime_DELTA_GET_MICROSECONDS(PyDateTime_Delta *o)

マイクロ秒を 0 から 999999 の間の整数で返します。

バージョン 3.3 で追加.

以下のマクロは DB API を実装する上での便宜用です:

PyObject* PyDateTime_FromTimestamp(PyObject *args)
Return value: New reference.

Create and return a new datetime.datetime object given an argument tuple suitable for passing to datetime.datetime.fromtimestamp().

PyObject* PyDate_FromTimestamp(PyObject *args)
Return value: New reference.

Create and return a new datetime.date object given an argument tuple suitable for passing to datetime.date.fromtimestamp().