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_DateType
或PyDateTime_DateType
的子类型,则返回true。ob不能为NULL。
- int
PyDateTime_Check
(PyObject *ob)¶ 如果ob的类型为
PyDateTime_DateTimeType
或PyDateTime_DateTimeType
的子类型,则返回true。ob不能为NULL。
- int
PyTime_Check
(PyObject *ob)¶ 如果ob的类型为
PyDateTime_TimeType
或PyDateTime_TimeType
的子类型,则返回true。ob不能为NULL。
- int
PyDelta_Check
(PyObject *ob)¶ 如果ob的类型为
PyDateTime_DeltaType
或PyDateTime_DeltaType
的子类型,则返回true。ob不能为NULL。
- int
PyTZInfo_Check
(PyObject *ob)¶ 如果ob的类型为
PyDateTime_TZInfoType
或PyDateTime_TZInfoType
的子类型,则返回true。ob不能为NULL。
创建对象的宏:
- 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的模块的方便: