Объекты DateTime

Различные объекты даты и времени предоставляются модулем datetime. Перед использованием любой из этих функций должен быть подключен datetime.h заголовочный файл в исходник (обратите внимание, что он не подключен к Python.h), и макрос PyDateTime_IMPORT должен быть вызван, как правило, как часть функции инициализации модуля. Макрос помещает указатель на структуру C в статическую переменную PyDateTimeAPI, используемый следующими макросами.

Макрос для доступа к UTC синглетону:

PyObject* PyDateTime_TimeZone_UTC

Возвращает синглтон часового пояса, представляющий UTC, тот же объект, что и datetime.timezone.utc.

Добавлено в версии 3.7.

Макросы проверки типа:

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)
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.

Возвращает объект 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.

Возвращает объект 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.

Возвращает объект datetime.timezone с неименованным фиксированным смещением, представленным аргументом offset.

Добавлено в версии 3.7.

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

Возвращает объект datetime.timezone с фиксированным смещением, представленным аргументом offset и tzname name.

Добавлено в версии 3.7.

Макросы для извлечения полей из объектов даты. Аргумент должен быть сущностью 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)

Возвращает час, как 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)

Возвращает количество дней, от -999999999 до 999999999.

Добавлено в версии 3.3.

int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o)

Возвращает количество секунд от 0 до 86399.

Добавлено в версии 3.3.

int PyDateTime_DELTA_GET_MICROSECONDS(PyDateTime_Delta *o)

Возвращает число микросекунд, как int от 0 до 999999.

Добавлено в версии 3.3.

Макросы для удобства модулей, реализующих DB API:

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

Создаёт и возвращает новый объект datetime.datetime с помощью кортежа аргументов, подходящего для передачи datetime.datetime.fromtimestamp().

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

Создаёт и возвращает новый объект datetime.date с помощью кортежа аргументов, подходящего для передачи datetime.date.fromtimestamp().