datetime.md
1> **Источник:** https://python-all.ru/3.0/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.0/library/datetime.html#module-datetime). Перед использованием любой из этих функций заголовочный файл `datetime.h` должен быть включён в исходный код (обратите внимание, что этот файл не включается `Python.h`), и должен быть вызван макрос `PyDateTime_IMPORT`. Макрос помещает указатель на C-структуру в статическую переменную `PyDateTimeAPI`, которая используется следующими макросами.1011Макросы проверки типа:1213**\[PyDate\_Check\]int `PyDate_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**1415Возвращает истину, если1617*ob*1819имеет тип2021`PyDateTime_DateType`2223или является подтипом2425`PyDateTime_DateType`2627.2829*ob*3031не должен быть3233*NULL*3435.3637**\[PyDate\_CheckExact\]int `PyDate_CheckExact`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**3839Возвращает истину, если4041*ob*4243имеет тип4445`PyDateTime_DateType`4647.4849*ob*5051не должен быть5253*NULL*5455.5657**\[PyDateTime\_Check\]int `PyDateTime_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**5859Возвращает истину, если6061*ob*6263имеет тип6465`PyDateTime_DateTimeType`6667или является подтипом6869`PyDateTime_DateTimeType`7071.7273*ob*7475не должен быть7677*NULL*7879.8081**\[PyDateTime\_CheckExact\]int `PyDateTime_CheckExact`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**8283Возвращает истину, если8485*ob*8687имеет тип8889`PyDateTime_DateTimeType`9091.9293*ob*9495не должен быть9697*NULL*9899.100101**\[PyTime\_Check\]int `PyTime_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**102103Возвращает истину, если104105*ob*106107имеет тип108109`PyDateTime_TimeType`110111или является подтипом112113`PyDateTime_TimeType`114115.116117*ob*118119не должен быть120121*NULL*122123.124125**\[PyTime\_CheckExact\]int `PyTime_CheckExact`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**126127Возвращает истину, если128129*ob*130131имеет тип132133`PyDateTime_TimeType`134135.136137*ob*138139не должен быть140141*NULL*142143.144145**\[PyDelta\_Check\]int `PyDelta_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**146147Возвращает истину, если148149*ob*150151имеет тип152153`PyDateTime_DeltaType`154155или является подтипом156157`PyDateTime_DeltaType`158159.160161*ob*162163не должен быть164165*NULL*166167.168169**\[PyDelta\_CheckExact\]int `PyDelta_CheckExact`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**170171Возвращает истину, если172173*ob*174175имеет тип176177`PyDateTime_DeltaType`178179.180181*ob*182183не должен быть184185*NULL*186187.188189**\[PyTZInfo\_Check\]int `PyTZInfo_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**190191Возвращает истину, если192193*ob*194195имеет тип196197`PyDateTime_TZInfoType`198199или является подтипом200201`PyDateTime_TZInfoType`202203.204205*ob*206207не должен быть208209*NULL*210211.212213**\[PyTZInfo\_CheckExact\]int `PyTZInfo_CheckExact`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*)**214215Возвращает истину, если216217*ob*218219имеет тип220221`PyDateTime_TZInfoType`222223.224225*ob*226227не должен быть228229*NULL*230231.232233Макросы для создания объектов:234235**\[PyDate\_FromDate\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyDate_FromDate`(int *year*, int *month*, int *day*)**236237*Возвращаемое значение: новая ссылка.*238239Возвращает объект `datetime.date` с указанными годом, месяцем и днём.240241**\[PyDateTime\_FromDateAndTime\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyDateTime_FromDateAndTime`(int *year*, int *month*, int *day*, int *hour*, int *minute*, int *second*, int *usecond*)**242243*Возвращаемое значение: новая ссылка.*244245Возвращает объект `datetime.datetime` с указанными годом, месяцем, днём, часом, минутой, секундой и микросекундой.246247**\[PyTime\_FromTime\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyTime_FromTime`(int *hour*, int *minute*, int *second*, int *usecond*)**248249*Возвращаемое значение: новая ссылка.*250251Возвращает объект `datetime.time` с указанными часом, минутой, секундой и микросекундой.252253**\[PyDelta\_FromDSU\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyDelta_FromDSU`(int *days*, int *seconds*, int *useconds*)**254255*Возвращаемое значение: новая ссылка.*256257Возвращает объект `datetime.timedelta`, представляющий заданное количество дней, секунд и микросекунд. Выполняется нормализация, чтобы результирующее количество микросекунд и секунд находилось в диапазонах, описанных для объектов `datetime.timedelta`.258259Макросы для извлечения полей из объектов даты. Аргумент должен быть экземпляром `PyDateTime_Date`, включая подклассы (например, `PyDateTime_DateTime`). Аргумент не должен быть *NULL*, и тип не проверяется:260261**\[PyDateTime\_GET\_YEAR\]int `PyDateTime_GET_YEAR`(PyDateTime\_Date *\*o*)**262263Возвращает год в виде положительного int.264265**\[PyDateTime\_GET\_MONTH\]int `PyDateTime_GET_MONTH`(PyDateTime\_Date *\*o*)**266267Возвращает месяц в виде int от 1 до 12.268269**\[PyDateTime\_GET\_DAY\]int `PyDateTime_GET_DAY`(PyDateTime\_Date *\*o*)**270271Возвращает день в виде int от 1 до 31.272273Макросы для извлечения полей из объектов datetime. Аргумент должен быть экземпляром `PyDateTime_DateTime`, включая подклассы. Аргумент не должен быть *NULL*, тип не проверяется:274275**\[PyDateTime\_DATE\_GET\_HOUR\]int `PyDateTime_DATE_GET_HOUR`(PyDateTime\_DateTime *\*o*)**276277Возвращает часы в виде целого числа от 0 до 23.278279**\[PyDateTime\_DATE\_GET\_MINUTE\]int `PyDateTime_DATE_GET_MINUTE`(PyDateTime\_DateTime *\*o*)**280281Возвращает минуты в виде целого числа от 0 до 59.282283**\[PyDateTime\_DATE\_GET\_SECOND\]int `PyDateTime_DATE_GET_SECOND`(PyDateTime\_DateTime *\*o*)**284285Возвращает секунды в виде целого числа от 0 до 59.286287**\[PyDateTime\_DATE\_GET\_MICROSECOND\]int `PyDateTime_DATE_GET_MICROSECOND`(PyDateTime\_DateTime *\*o*)**288289Возвращает микросекунды в виде целого числа от 0 до 999999.290291Макросы для извлечения полей из объектов time. Аргумент должен быть экземпляром `PyDateTime_Time`, включая подклассы. Аргумент не должен быть *NULL*, тип не проверяется:292293**\[PyDateTime\_TIME\_GET\_HOUR\]int `PyDateTime_TIME_GET_HOUR`(PyDateTime\_Time *\*o*)**294295Возвращает часы в виде целого числа от 0 до 23.296297**\[PyDateTime\_TIME\_GET\_MINUTE\]int `PyDateTime_TIME_GET_MINUTE`(PyDateTime\_Time *\*o*)**298299Возвращает минуты в виде целого числа от 0 до 59.300301**\[PyDateTime\_TIME\_GET\_SECOND\]int `PyDateTime_TIME_GET_SECOND`(PyDateTime\_Time *\*o*)**302303Возвращает секунды в виде целого числа от 0 до 59.304305**\[PyDateTime\_TIME\_GET\_MICROSECOND\]int `PyDateTime_TIME_GET_MICROSECOND`(PyDateTime\_Time *\*o*)**306307Возвращает микросекунды в виде целого числа от 0 до 999999.308309Макросы для удобства модулей, реализующих DB API:310311**\[PyDateTime\_FromTimestamp\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyDateTime_FromTimestamp`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*args*)**312313*Возвращаемое значение: новая ссылка.*314315Создаёт и возвращает новый объект `datetime.datetime`, принимая кортеж аргументов, подходящий для передачи в `datetime.datetime.fromtimestamp()`.316317**\[PyDate\_FromTimestamp\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyDate_FromTimestamp`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*args*)**318319*Возвращаемое значение: новая ссылка.*320321Создаёт и возвращает новый объект `datetime.date`, принимая кортеж аргументов, подходящий для передачи в `datetime.date.fromtimestamp()`.322