Объекты даты и времени¶DateTime Objects
Модуль datetime предоставляет различные объекты для работы с датой и временем. Перед использованием любой из этих функций в исходный код необходимо включить заголовочный файл datetime.h (обратите внимание: он не включается макросом Python.h), а также вызвать макрос PyDateTime_IMPORT, обычно – в функции инициализации модуля. Этот макрос помещает указатель на C-структуру в статическую переменную PyDateTimeAPI, которая используется последующими макросами.
Макросы проверки типа:
-
int
PyDate_Check(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_DateTypeили является подтипомPyDateTime_DateType. ob не должен быть NULL.
-
int
PyDate_CheckExact(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_DateType. ob не должен быть NULL.
-
int
PyDateTime_Check(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_DateTimeTypeили является подтипомPyDateTime_DateTimeType. ob не должен быть NULL.
-
int
PyDateTime_CheckExact(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_DateTimeType. ob не должен быть NULL.
-
int
PyTime_Check(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_TimeTypeили является подтипомPyDateTime_TimeType. ob не должен быть NULL.
-
int
PyTime_CheckExact(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_TimeType. ob не должен быть NULL.
-
int
PyDelta_Check(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_DeltaTypeили является подтипомPyDateTime_DeltaType. ob не должен быть NULL.
-
int
PyDelta_CheckExact(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_DeltaType. ob не должен быть NULL.
-
int
PyTZInfo_Check(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_TZInfoTypeили является подтипомPyDateTime_TZInfoType. ob не должен быть NULL.
-
int
PyTZInfo_CheckExact(PyObject *ob)¶ Возвращает true, если ob имеет тип
PyDateTime_TZInfoType. 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.
-
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)¶ Возвращает часы в виде целого числа от 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.
Макросы для извлечения полей из объектов timedelta. Аргумент должен быть экземпляром 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_MICROSECOND(PyDateTime_Delta *o)¶ Возвращает количество микросекунд в виде целого числа от 0 до 999999.
Новое в версии 3.3.
Макросы для удобства модулей, реализующих DB API: