DateTime Objects

各种日期和时间对象由datetime模块提供。Before using any of these functions, the header file datetime.h must be included in your source (note that this is not included by Python.h), and the macro PyDateTime_IMPORT must be invoked, usually as part of the module initialisation function. 宏将指向C结构的指针放入静态变量PyDateTimeAPI,由以下宏使用。

类型检查宏:

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)

如果ob的类型为PyDateTime_DeltaTypePyDateTime_DeltaType的子类型,则返回true。ob不能为NULL

int PyDelta_CheckExact(PyObject *ob)

如果ob的类型为PyDateTime_DeltaType,则返回true。ob不能为NULL

int PyTZInfo_Check(PyObject *ob)

如果ob的类型为PyDateTime_TZInfoTypePyDateTime_TZInfoType的子类型,则返回true。ob不能为NULL

int PyTZInfo_CheckExact(PyObject *ob)

如果ob的类型为PyDateTime_TZInfoType,则返回true。ob不能为NULL

创建对象的宏:

PyObject* PyDate_FromDate(int year, int month, int day)
返回值:新引用。

返回具有指定年,月和日的datetime.date对象。

PyObject* PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond)
返回值:新引用。

返回具有指定的年,月,日,小时,分钟,秒和微秒的datetime.datetime对象。

PyObject* PyTime_FromTime(int hour, int minute, int second, int usecond)
返回值:新引用。

返回具有指定的小时,分​​钟,秒和微秒的datetime.time对象。

PyObject* PyDelta_FromDSU(int days, int seconds, int useconds)
返回值:新引用。

返回表示给定天数,秒和微秒数的datetime.timedelta对象。执行归一化,使得所产生的微秒和秒的数量在针对datetime.timedelta对象记录的范围内。

宏从日期对象中提取字段。参数必须是PyDateTime_Date的实例,包括子类(例如PyDateTime_DateTime)。参数不能为NULL,并且不检查类型:

int PyDateTime_GET_YEAR(PyDateTime_Date *o)

返回年份,作为一个正整数。

int PyDateTime_GET_MONTH(PyDateTime_Date *o)

返回月,作为int从1到12。

int PyDateTime_GET_DAY(PyDateTime_Date *o)

返回一天,作为int从1到31。

宏从datetime对象中提取字段。参数必须是PyDateTime_DateTime的实例,包括子类。参数不能为NULL,并且不检查类型:

int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime *o)

返回小时,作为一个int从0到23。

int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o)

返回分钟,作为一个int从0到59。

int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o)

返回第二个,作为一个int从0到59。

int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o)

返回微秒,作为int从0到999999。

宏从时间对象中提取字段。参数必须是PyDateTime_Time的实例,包括子类。参数不能为NULL,并且不检查类型:

int PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o)

返回小时,作为一个int从0到23。

int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o)

返回分钟,作为一个int从0到59。

int PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o)

返回第二个,作为一个int从0到59。

int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o)

返回微秒,作为int从0到999999。

宏从时间增量对象中提取字段。参数必须是PyDateTime_Delta的实例,包括子类。参数不能为NULL,并且不检查类型:

int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta *o)

返回天数,以int为单位,从-999999999到999999999。

版本3.3中的新功能。

int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o)

返回秒数,以int为单位,从0到86399。

版本3.3中的新功能。

int PyDateTime_DELTA_GET_MICROSECOND(PyDateTime_Delta *o)

返回微秒数,以int为单位从0到999999。

版本3.3中的新功能。

宏为实现DB API的模块的方便:

PyObject* PyDateTime_FromTimestamp(PyObject *args)
返回值:新引用。

创建并返回一个新的datetime.datetime对象,给出适用于传递到datetime.datetime.fromtimestamp()的参数元组。

PyObject* PyDate_FromTimestamp(PyObject *args)
返回值:新引用。

创建并返回一个新的datetime.date对象,给定适合传递到datetime.date.fromtimestamp()的参数元组。