Объекты DateTime¶
Различные объекты даты и времени предоставляются модулем datetime. Перед использованием любой из этих функций, заголовочный файл datetime.h должен быть включен в ваш исходный текст (обратите внимание, что он не включается Python.h), а макрос PyDateTime_IMPORT должен быть вызван, обычно как часть функции инициализации модуля. Макрос помещает указатель на структуру языка Си в статическую переменную 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)¶ Возвращает час в виде числа от 0 до 23.
-
int
PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o)¶ Возвращает минуту в формате int от 0 до 59.
-
int
PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o)¶ Возвращает значение секунды в виде числа от 0 до 59.
-
int
PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o)¶ Возвращает микросекунду в виде числа от 0 до 999999.
-
int
PyDateTime_DATE_GET_FOLD(PyDateTime_DateTime *o)¶ Возвращает складку в виде числа от 0 до 1.
Добавлено в версии 3.6.
-
PyObject *
PyDateTime_DATE_GET_TZINFO(PyDateTime_DateTime *o)¶ Возвращает tzinfo (который может быть
None).Добавлено в версии 3.10.
Макросы для извлечения полей из объектов времени. Аргумент должен быть экземпляром PyDateTime_Time, включая подклассы. Аргумент не должен быть NULL, тип не проверяется:
-
int
PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o)¶ Возвращает час в виде числа от 0 до 23.
-
int
PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o)¶ Возвращает минуту в формате int от 0 до 59.
-
int
PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o)¶ Возвращает значение секунды в виде числа от 0 до 59.
-
int
PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o)¶ Возвращает микросекунду в виде числа от 0 до 999999.
-
int
PyDateTime_TIME_GET_FOLD(PyDateTime_Time *o)¶ Возвращает складку в виде числа от 0 до 1.
Добавлено в версии 3.6.
-
PyObject *
PyDateTime_TIME_GET_TZINFO(PyDateTime_Time *o)¶ Возвращает tzinfo (который может быть
None).Добавлено в версии 3.10.
Макросы для извлечения полей из объектов дельты времени. Аргумент должен быть экземпляром 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.
Макросы для удобства модулей, реализующих 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().