Документация Python неофициальный перевод

datetime.md

262 строк · 17.0 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.11/c-api/datetime.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты даты и времени89Модуль [`datetime`](https://python-all.ru/3.11/library/datetime.html#module-datetime) предоставляет различные объекты для работы с датой и временем. Перед использованием любой из этих функций в исходный код необходимо включить заголовочный файл `datetime.h` (обратите внимание: он не включается макросом `Python.h`), а также вызвать макрос `PyDateTime_IMPORT`, обычно – в функции инициализации модуля. Этот макрос помещает указатель на C-структуру в статическую переменную `PyDateTimeAPI`, которая используется последующими макросами.1011#### `type PyDateTime_Date`1213Этот подтип [`PyObject`](https://python-all.ru/3.11/c-api/structures.html#c.PyObject) представляет объект даты Python.1415#### `type PyDateTime_DateTime`1617Этот подтип [`PyObject`](https://python-all.ru/3.11/c-api/structures.html#c.PyObject) представляет объект datetime Python.1819#### `type PyDateTime_Time`2021Этот подтип [`PyObject`](https://python-all.ru/3.11/c-api/structures.html#c.PyObject) представляет объект времени Python.2223#### `type PyDateTime_Delta`2425Этот подтип [`PyObject`](https://python-all.ru/3.11/c-api/structures.html#c.PyObject) представляет разность между двумя значениями datetime.2627#### `PyTypeObject PyDateTime_DateType`2829Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.11/c-api/type.html#c.PyTypeObject) представляет тип date в Python; это тот же объект, что и [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date) на уровне Python.3031#### `PyTypeObject PyDateTime_DateTimeType`3233Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.11/c-api/type.html#c.PyTypeObject) представляет тип datetime в Python; это тот же объект, что и [`datetime.datetime`](https://python-all.ru/3.11/library/datetime.html#datetime.datetime) на уровне Python.3435#### `PyTypeObject PyDateTime_TimeType`3637Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.11/c-api/type.html#c.PyTypeObject) представляет тип time в Python; это тот же объект, что и [`datetime.time`](https://python-all.ru/3.11/library/datetime.html#datetime.time) на уровне Python.3839#### `PyTypeObject PyDateTime_DeltaType`4041Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.11/c-api/type.html#c.PyTypeObject) представляет тип Python для разницы между двумя значениями даты и времени; он является тем же объектом, что и [`datetime.timedelta`](https://python-all.ru/3.11/library/datetime.html#datetime.timedelta) на уровне Python.4243#### `PyTypeObject PyDateTime_TZInfoType`4445Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.11/c-api/type.html#c.PyTypeObject) представляет тип информации о часовом поясе Python; это тот же объект, что и [`datetime.tzinfo`](https://python-all.ru/3.11/library/datetime.html#datetime.tzinfo) в слое Python.4647Макрос для доступа к синглтону UTC:4849#### `PyObject *PyDateTime_TimeZone_UTC`5051Возвращает синглтон часового пояса, представляющий UTC, тот же объект, что и [`datetime.timezone.utc`](https://python-all.ru/3.11/library/datetime.html#datetime.timezone.utc).5253Добавлено в версии 3.7.5455Макросы проверки типа:5657#### `int PyDate_Check(PyObject *ob)`5859Возвращает истину, если *ob* имеет тип [`PyDateTime_DateType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DateType) или является подтипом `PyDateTime_DateType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.6061#### `int PyDate_CheckExact(PyObject *ob)`6263Возвращает истину, если *ob* имеет тип [`PyDateTime_DateType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DateType). *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.6465#### `int PyDateTime_Check(PyObject *ob)`6667Возвращает истину, если *ob* имеет тип [`PyDateTime_DateTimeType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DateTimeType) или является подтипом `PyDateTime_DateTimeType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.6869#### `int PyDateTime_CheckExact(PyObject *ob)`7071Возвращает истину, если *ob* имеет тип [`PyDateTime_DateTimeType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DateTimeType). *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.7273#### `int PyTime_Check(PyObject *ob)`7475Возвращает истину, если *ob* имеет тип [`PyDateTime_TimeType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_TimeType) или является подтипом `PyDateTime_TimeType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.7677#### `int PyTime_CheckExact(PyObject *ob)`7879Возвращает истину, если *ob* имеет тип [`PyDateTime_TimeType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_TimeType). *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.8081#### `int PyDelta_Check(PyObject *ob)`8283Возвращает истину, если *ob* имеет тип [`PyDateTime_DeltaType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DeltaType) или является подтипом `PyDateTime_DeltaType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.8485#### `int PyDelta_CheckExact(PyObject *ob)`8687Возвращает истину, если *ob* имеет тип [`PyDateTime_DeltaType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DeltaType). *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.8889#### `int PyTZInfo_Check(PyObject *ob)`9091Возвращает истину, если *ob* имеет тип [`PyDateTime_TZInfoType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_TZInfoType) или является подтипом `PyDateTime_TZInfoType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.9293#### `int PyTZInfo_CheckExact(PyObject *ob)`9495Возвращает истину, если *ob* имеет тип [`PyDateTime_TZInfoType`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_TZInfoType). *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.9697Макросы для создания объектов:9899#### `PyObject *PyDate_FromDate(int year, int month, int day)`100101*Возвращаемое значение: новая ссылка.*102103Возвращает объект [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date) с указанными годом, месяцем и днём.104105#### `PyObject *PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond)`106107*Возвращаемое значение: новая ссылка.*108109Возвращает объект [`datetime.datetime`](https://python-all.ru/3.11/library/datetime.html#datetime.datetime) с указанными годом, месяцем, днём, часом, минутой, секундой и микросекундой.110111#### `PyObject *PyDateTime_FromDateAndTimeAndFold(int year, int month, int day, int hour, int minute, int second, int usecond, int fold)`112113*Возвращаемое значение: новая ссылка.*114115Возвращает объект [`datetime.datetime`](https://python-all.ru/3.11/library/datetime.html#datetime.datetime) с указанными годом, месяцем, днём, часом, минутой, секундой, микросекундой и fold.116117Добавлено в версии 3.6.118119#### `PyObject *PyTime_FromTime(int hour, int minute, int second, int usecond)`120121*Возвращаемое значение: новая ссылка.*122123Возвращает объект [`datetime.time`](https://python-all.ru/3.11/library/datetime.html#datetime.time) с указанными часом, минутой, секундой и микросекундой.124125#### `PyObject *PyTime_FromTimeAndFold(int hour, int minute, int second, int usecond, int fold)`126127*Возвращаемое значение: новая ссылка.*128129Возвращает объект [`datetime.time`](https://python-all.ru/3.11/library/datetime.html#datetime.time) с указанными часом, минутой, секундой, микросекундой и fold.130131Добавлено в версии 3.6.132133#### `PyObject *PyDelta_FromDSU(int days, int seconds, int useconds)`134135*Возвращаемое значение: новая ссылка.*136137Возвращает объект [`datetime.timedelta`](https://python-all.ru/3.11/library/datetime.html#datetime.timedelta), представляющий указанное количество дней, секунд и микросекунд. Нормализация выполняется так, чтобы результирующие значения микросекунд и секунд находились в диапазонах, описанных для объектов [`datetime.timedelta`](https://python-all.ru/3.11/library/datetime.html#datetime.timedelta).138139#### `PyObject *PyTimeZone_FromOffset(PyObject *offset)`140141*Возвращаемое значение: новая ссылка.*142143Возвращает объект [`datetime.timezone`](https://python-all.ru/3.11/library/datetime.html#datetime.timezone) с безымянным фиксированным смещением, заданным аргументом *offset*.144145Добавлено в версии 3.7.146147#### `PyObject *PyTimeZone_FromOffsetAndName(PyObject *offset, PyObject *name)`148149*Возвращаемое значение: новая ссылка.*150151Возвращает объект [`datetime.timezone`](https://python-all.ru/3.11/library/datetime.html#datetime.timezone) с фиксированным смещением, заданным аргументом *offset*, и с именем часового пояса *name*.152153Добавлено в версии 3.7.154155Макросы для извлечения полей из объектов даты. Аргументом должен быть экземпляр [`PyDateTime_Date`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_Date), включая подклассы (например, [`PyDateTime_DateTime`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DateTime)). Аргумент не должен быть `NULL`, и тип не проверяется:156157#### `int PyDateTime_GET_YEAR(PyDateTime_Date *o)`158159Возвращает год в виде положительного int.160161#### `int PyDateTime_GET_MONTH(PyDateTime_Date *o)`162163Возвращает месяц в виде int от 1 до 12.164165#### `int PyDateTime_GET_DAY(PyDateTime_Date *o)`166167Возвращает день в виде int от 1 до 31.168169Макросы для извлечения полей из объектов datetime. Аргументом должен быть экземпляр [`PyDateTime_DateTime`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_DateTime), включая подклассы. Аргумент не должен быть `NULL`, тип не проверяется:170171#### `int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime *o)`172173Возвращает часы в виде целого числа от 0 до 23.174175#### `int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o)`176177Возвращает минуты в виде целого числа от 0 до 59.178179#### `int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o)`180181Возвращает секунды в виде целого числа от 0 до 59.182183#### `int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o)`184185Возвращает микросекунды в виде целого числа от 0 до 999999.186187#### `int PyDateTime_DATE_GET_FOLD(PyDateTime_DateTime *o)`188189Возвращает fold в виде целого числа от 0 до 1.190191Добавлено в версии 3.6.192193#### `PyObject *PyDateTime_DATE_GET_TZINFO(PyDateTime_DateTime *o)`194195Возвращает tzinfo (может быть `None`).196197Новое в версии 3.10.198199Макросы для извлечения полей из объектов time. Аргумент должен быть экземпляром [`PyDateTime_Time`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_Time), включая подклассы. Аргумент не должен быть `NULL`, при этом тип не проверяется:200201#### `int PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o)`202203Возвращает часы в виде целого числа от 0 до 23.204205#### `int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o)`206207Возвращает минуты в виде целого числа от 0 до 59.208209#### `int PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o)`210211Возвращает секунды в виде целого числа от 0 до 59.212213#### `int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o)`214215Возвращает микросекунды в виде целого числа от 0 до 999999.216217#### `int PyDateTime_TIME_GET_FOLD(PyDateTime_Time *o)`218219Возвращает fold в виде целого числа от 0 до 1.220221Новое в версии 3.6.222223#### `PyObject *PyDateTime_TIME_GET_TZINFO(PyDateTime_Time *o)`224225Возвращает tzinfo (может быть `None`).226227Новое в версии 3.10.228229Макросы для извлечения полей из объектов timedelta. Аргумент должен быть экземпляром [`PyDateTime_Delta`](https://python-all.ru/3.11/c-api/datetime.html#c.PyDateTime_Delta), включая подклассы. Аргумент не должен быть `NULL`, при этом тип не проверяется:230231#### `int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta *o)`232233Возвращает количество дней в виде целого числа от -999999999 до 999999999.234235Новое в версии 3.3.236237#### `int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o)`238239Возвращает количество секунд в виде целого числа от 0 до 86399.240241Новое в версии 3.3.242243#### `int PyDateTime_DELTA_GET_MICROSECONDS(PyDateTime_Delta *o)`244245Возвращает количество микросекунд в виде целого числа от 0 до 999999.246247Новое в версии 3.3.248249Макросы для удобства модулей, реализующих DB API:250251#### `PyObject *PyDateTime_FromTimestamp(PyObject *args)`252253*Возвращаемое значение: новая ссылка.*254255Создаёт и возвращает новый объект [`datetime.datetime`](https://python-all.ru/3.11/library/datetime.html#datetime.datetime), используя кортеж аргументов, подходящий для передачи в [`datetime.datetime.fromtimestamp()`](https://python-all.ru/3.11/library/datetime.html#datetime.datetime.fromtimestamp).256257#### `PyObject *PyDate_FromTimestamp(PyObject *args)`258259*Возвращаемое значение: новая ссылка.*260261Создаёт и возвращает новый объект [`datetime.date`](https://python-all.ru/3.11/library/datetime.html#datetime.date), используя кортеж аргументов, подходящий для передачи в [`datetime.date.fromtimestamp()`](https://python-all.ru/3.11/library/datetime.html#datetime.date.fromtimestamp).262