Объекты 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) Возвращает истина, если 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.
Возвращение объекта
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
PyDateTime_GET_MONTH
(PyDateTime_Date *o) Возвращает месяц в виде int от 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.
Макросы для извлечения полей из объектов времени. Аргумент должен быть
экземпляром 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.
Макросы для извлечения полей из объектов дельты времени. Аргумент должен быть
экземпляром PyDateTime_Delta
, включая подклассы. Аргумент не должен
быть NULL
, а тип не проверяется:
-
int
PyDateTime_DELTA_GET_DAYS
(PyDateTime_Delta *o) Возвращает количество дней в виде int от -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.
Макросы для удобства модулей, реализующих 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()
.