DateTime オブジェクト¶
datetime モジュールでは、様々な日付オブジェクトや時刻オブジェクトを提供しています。以下に示す関数を使う場合には、あらかじめヘッダファイル datetime.h をソースに include し (Python.h はこのファイルを include しません)、 PyDateTime_IMPORT マクロを、通常はモジュール初期化関数から、起動しておく必要があります。このマクロは以下のマクロで使われる静的変数 PyDateTimeAPI に C 構造体へのポインタを入れます。
UTCシングルトンにアクセスするためのマクロ:
-
PyObject*
PyDateTime_TimeZone_UTC¶ UTCタイムゾーンに相当するシングルトンを返します。 これは
datetime.timezon.utcと同じオブジェクトです。バージョン 3.7 で追加.
型チェックマクロ:
-
int
PyDate_Check(PyObject *ob)¶ ob が
PyDateTime_DateType型かPyDateTime_DateType型のサブタイプのオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyDate_CheckExact(PyObject *ob)¶ ob が
PyDateTime_DateType型のオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyDateTime_Check(PyObject *ob)¶ ob が
PyDateTime_DateTimeType型かPyDateTime_DateTimeType型のサブタイプのオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyDateTime_CheckExact(PyObject *ob)¶ ob が
PyDateTime_DateTimeType型のオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyTime_Check(PyObject *ob)¶ ob が
PyDateTime_TimeType型かPyDateTime_TimeType型のサブタイプのオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyTime_CheckExact(PyObject *ob)¶ ob が
PyDateTime_TimeType型のオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyDelta_Check(PyObject *ob)¶ ob が
PyDateTime_DeltaType型かPyDateTime_DeltaType型のサブタイプのオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyDelta_CheckExact(PyObject *ob)¶ ob が
PyDateTime_DeltaType型のオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyTZInfo_Check(PyObject *ob)¶ ob が
PyDateTime_TZInfoType型かPyDateTime_TZInfoType型のサブタイプのオブジェクトの場合に真を返します; ob はNULLであってはなりません。
-
int
PyTZInfo_CheckExact(PyObject *ob)¶ ob が
PyDateTime_TZInfoType型のオブジェクトの場合に真を返します; ob はNULLであってはなりません。
以下はオブジェクトを作成するためのマクロです:
-
PyObject*
PyDate_FromDate(int year, int month, int day)¶ - Return value: New reference.
指定した年、月、日の
datetime.dateオブジェクトを返します。
-
PyObject*
PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond)¶ - Return value: New reference.
指定した年、月、日、時、分、秒、マイクロ秒の
datetime.datetimeオブジェクトを返します。
-
PyObject*
PyDateTime_FromDateAndTimeAndFold(int year, int month, int day, int hour, int minute, int second, int usecond, int fold)¶ - Return value: New reference.
指定された年、月、日、時、分、秒、マイクロ秒、fold の
datetime.datetimeオブジェクトを返します。バージョン 3.6 で追加.
-
PyObject*
PyTime_FromTime(int hour, int minute, int second, int usecond)¶ - Return value: New reference.
指定された時、分、秒、マイクロ秒の
datetime.timeオブジェクトを返します。
-
PyObject*
PyTime_FromTimeAndFold(int hour, int minute, int second, int usecond, int fold)¶ - Return value: New reference.
指定された時、分、秒、マイクロ秒、fold の
datetime.timeオブジェクトを返します。バージョン 3.6 で追加.
-
PyObject*
PyDelta_FromDSU(int days, int seconds, int useconds)¶ - Return value: New reference.
指定された日、秒、マイクロ秒の
datetime.timedeltaオブジェクトを返します。マイクロ秒と秒がdatetime.timedeltaオブジェクトで定義されている範囲に入るように正規化を行います。
-
PyObject*
PyTimeZone_FromOffset(PyDateTime_DeltaType* offset)¶ - Return value: New reference.
offset 引数で指定した固定オフセットを持つ、名前のない
datetime.timezoneオブジェクトを返します。バージョン 3.7 で追加.
-
PyObject*
PyTimeZone_FromOffsetAndName(PyDateTime_DeltaType* offset, PyUnicode* name)¶ - Return value: New reference.
offset*引数で指定した固定のオフセットと、*name のタイムゾーン名を持つ
datetime.timezoneオブジェクトを返します。バージョン 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 の間の整数で返します。
-
int
PyDateTime_DATE_GET_FOLD(PyDateTime_DateTime *o)¶ Return the fold, as an int from 0 through 1.
バージョン 3.6 で追加.
以下のマクロは 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 の間の整数で返します。
-
int
PyDateTime_TIME_GET_FOLD(PyDateTime_Time *o)¶ Return the fold, as an int from 0 through 1.
バージョン 3.6 で追加.
以下のマクロは 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.
dateitme.datetime.fromtimestamp()に渡すのに適した引数タプルから新たなdatetime.datetimeオブジェクトを生成して返します。
-
PyObject*
PyDate_FromTimestamp(PyObject *args)¶ - Return value: New reference.
dateitme.date.fromtimestamp()に渡すのに適した引数タプルから新たなdatetime.dateオブジェクトを生成して返します。
