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

datetime.md

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

1> **Источник:** https://python-all.ru/3.10/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.10/library/datetime.html#module-datetime) предоставляет различные объекты для работы с датой и временем. Перед использованием любой из этих функций в исходный код необходимо включить заголовочный файл `datetime.h` (обратите внимание: он не включается макросом `Python.h`), а также вызвать макрос `PyDateTime_IMPORT`, обычно – в функции инициализации модуля. Этот макрос помещает указатель на C-структуру в статическую переменную `PyDateTimeAPI`, которая используется последующими макросами.1011Макрос для доступа к синглтону UTC:1213#### `PyObject *PyDateTime_TimeZone_UTC`1415Возвращает синглтон часового пояса, представляющий UTC, тот же объект, что и [`datetime.timezone.utc`](https://python-all.ru/3.10/library/datetime.html#datetime.timezone.utc).1617Добавлено в версии 3.7.1819Макросы проверки типа:2021#### `int PyDate_Check(PyObject *ob)`2223Возвращает истину, если *ob* имеет тип `PyDateTime_DateType` или является подтипом `PyDateTime_DateType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.2425#### `int PyDate_CheckExact(PyObject *ob)`2627Возвращает истину, если *ob* имеет тип `PyDateTime_DateType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.2829#### `int PyDateTime_Check(PyObject *ob)`3031Возвращает истину, если *ob* имеет тип `PyDateTime_DateTimeType` или является подтипом `PyDateTime_DateTimeType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.3233#### `int PyDateTime_CheckExact(PyObject *ob)`3435Возвращает истину, если *ob* имеет тип `PyDateTime_DateTimeType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.3637#### `int PyTime_Check(PyObject *ob)`3839Возвращает истину, если *ob* имеет тип `PyDateTime_TimeType` или является подтипом `PyDateTime_TimeType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.4041#### `int PyTime_CheckExact(PyObject *ob)`4243Возвращает истину, если *ob* имеет тип `PyDateTime_TimeType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.4445#### `int PyDelta_Check(PyObject *ob)`4647Возвращает истину, если *ob* имеет тип `PyDateTime_DeltaType` или является подтипом `PyDateTime_DeltaType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.4849#### `int PyDelta_CheckExact(PyObject *ob)`5051Возвращает истину, если *ob* имеет тип `PyDateTime_DeltaType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.5253#### `int PyTZInfo_Check(PyObject *ob)`5455Возвращает истину, если *ob* имеет тип `PyDateTime_TZInfoType` или является подтипом `PyDateTime_TZInfoType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.5657#### `int PyTZInfo_CheckExact(PyObject *ob)`5859Возвращает истину, если *ob* имеет тип `PyDateTime_TZInfoType`. *ob* не должен быть `NULL`. Эта функция всегда завершается успешно.6061Макросы для создания объектов:6263#### `PyObject *PyDate_FromDate(int year, int month, int day)`6465*Возвращаемое значение: новая ссылка.*6667Возвращает объект [`datetime.date`](https://python-all.ru/3.10/library/datetime.html#datetime.date) с указанными годом, месяцем и днём.6869#### `PyObject *PyDateTime_FromDateAndTime(int year, int month, int day, int hour, int minute, int second, int usecond)`7071*Возвращаемое значение: новая ссылка.*7273Возвращает объект [`datetime.datetime`](https://python-all.ru/3.10/library/datetime.html#datetime.datetime) с указанными годом, месяцем, днём, часом, минутой, секундой и микросекундой.7475#### `PyObject *PyDateTime_FromDateAndTimeAndFold(int year, int month, int day, int hour, int minute, int second, int usecond, int fold)`7677*Возвращаемое значение: новая ссылка.*7879Возвращает объект [`datetime.datetime`](https://python-all.ru/3.10/library/datetime.html#datetime.datetime) с указанными годом, месяцем, днём, часом, минутой, секундой, микросекундой и fold.8081Новое в версии 3.6.8283#### `PyObject *PyTime_FromTime(int hour, int minute, int second, int usecond)`8485*Возвращаемое значение: новая ссылка.*8687Возвращает объект [`datetime.time`](https://python-all.ru/3.10/library/datetime.html#datetime.time) с указанными часом, минутой, секундой и микросекундой.8889#### `PyObject *PyTime_FromTimeAndFold(int hour, int minute, int second, int usecond, int fold)`9091*Возвращаемое значение: новая ссылка.*9293Возвращает объект [`datetime.time`](https://python-all.ru/3.10/library/datetime.html#datetime.time) с указанными часом, минутой, секундой, микросекундой и fold.9495Новое в версии 3.6.9697#### `PyObject *PyDelta_FromDSU(int days, int seconds, int useconds)`9899*Возвращаемое значение: новая ссылка.*100101Возвращает объект [`datetime.timedelta`](https://python-all.ru/3.10/library/datetime.html#datetime.timedelta), представляющий указанное количество дней, секунд и микросекунд. Нормализация выполняется так, чтобы результирующие значения микросекунд и секунд находились в диапазонах, описанных для объектов [`datetime.timedelta`](https://python-all.ru/3.10/library/datetime.html#datetime.timedelta).102103#### `PyObject *PyTimeZone_FromOffset(PyDateTime_DeltaType *offset)`104105*Возвращаемое значение: новая ссылка.*106107Возвращает объект [`datetime.timezone`](https://python-all.ru/3.10/library/datetime.html#datetime.timezone) с безымянным фиксированным смещением, заданным аргументом *offset*.108109Добавлено в версии 3.7.110111#### `PyObject *PyTimeZone_FromOffsetAndName(PyDateTime_DeltaType *offset, PyUnicode *name)`112113*Возвращаемое значение: новая ссылка.*114115Возвращает объект [`datetime.timezone`](https://python-all.ru/3.10/library/datetime.html#datetime.timezone) с фиксированным смещением, заданным аргументом *offset*, и с именем часового пояса *name*.116117Добавлено в версии 3.7.118119Макросы для извлечения полей из объектов даты. Аргументом должен быть экземпляр `PyDateTime_Date`, включая подклассы (например, `PyDateTime_DateTime`). Аргумент не должен быть `NULL`, и тип не проверяется:120121#### `int PyDateTime_GET_YEAR(PyDateTime_Date *o)`122123Возвращает год в виде положительного int.124125#### `int PyDateTime_GET_MONTH(PyDateTime_Date *o)`126127Возвращает месяц в виде int от 1 до 12.128129#### `int PyDateTime_GET_DAY(PyDateTime_Date *o)`130131Возвращает день в виде int от 1 до 31.132133Макросы для извлечения полей из объектов datetime. Аргументом должен быть экземпляр `PyDateTime_DateTime`, включая подклассы. Аргумент не должен быть `NULL`, тип не проверяется:134135#### `int PyDateTime_DATE_GET_HOUR(PyDateTime_DateTime *o)`136137Возвращает часы в виде целого числа от 0 до 23.138139#### `int PyDateTime_DATE_GET_MINUTE(PyDateTime_DateTime *o)`140141Возвращает минуты в виде целого числа от 0 до 59.142143#### `int PyDateTime_DATE_GET_SECOND(PyDateTime_DateTime *o)`144145Возвращает секунды в виде целого числа от 0 до 59.146147#### `int PyDateTime_DATE_GET_MICROSECOND(PyDateTime_DateTime *o)`148149Возвращает микросекунды в виде целого числа от 0 до 999999.150151#### `int PyDateTime_DATE_GET_FOLD(PyDateTime_DateTime *o)`152153Возвращает fold в виде целого числа от 0 до 1.154155Новое в версии 3.6.156157#### `PyObject *PyDateTime_DATE_GET_TZINFO(PyDateTime_DateTime *o)`158159Возвращает tzinfo (может быть `None`).160161Новое в версии 3.10.162163Макросы для извлечения полей из объектов time. Аргумент должен быть экземпляром `PyDateTime_Time`, включая подклассы. Аргумент не должен быть `NULL`, при этом тип не проверяется:164165#### `int PyDateTime_TIME_GET_HOUR(PyDateTime_Time *o)`166167Возвращает часы в виде целого числа от 0 до 23.168169#### `int PyDateTime_TIME_GET_MINUTE(PyDateTime_Time *o)`170171Возвращает минуты в виде целого числа от 0 до 59.172173#### `int PyDateTime_TIME_GET_SECOND(PyDateTime_Time *o)`174175Возвращает секунды в виде целого числа от 0 до 59.176177#### `int PyDateTime_TIME_GET_MICROSECOND(PyDateTime_Time *o)`178179Возвращает микросекунды в виде целого числа от 0 до 999999.180181#### `int PyDateTime_TIME_GET_FOLD(PyDateTime_Time *o)`182183Возвращает fold в виде целого числа от 0 до 1.184185Новое в версии 3.6.186187#### `PyObject *PyDateTime_TIME_GET_TZINFO(PyDateTime_Time *o)`188189Возвращает tzinfo (может быть `None`).190191Новое в версии 3.10.192193Макросы для извлечения полей из объектов timedelta. Аргумент должен быть экземпляром `PyDateTime_Delta`, включая подклассы. Аргумент не должен быть `NULL`, при этом тип не проверяется:194195#### `int PyDateTime_DELTA_GET_DAYS(PyDateTime_Delta *o)`196197Возвращает количество дней в виде целого числа от -999999999 до 999999999.198199Новое в версии 3.3.200201#### `int PyDateTime_DELTA_GET_SECONDS(PyDateTime_Delta *o)`202203Возвращает количество секунд в виде целого числа от 0 до 86399.204205Новое в версии 3.3.206207#### `int PyDateTime_DELTA_GET_MICROSECONDS(PyDateTime_Delta *o)`208209Возвращает количество микросекунд в виде целого числа от 0 до 999999.210211Новое в версии 3.3.212213Макросы для удобства модулей, реализующих DB API:214215#### `PyObject *PyDateTime_FromTimestamp(PyObject *args)`216217*Возвращаемое значение: новая ссылка.*218219Создаёт и возвращает новый объект [`datetime.datetime`](https://python-all.ru/3.10/library/datetime.html#datetime.datetime), используя кортеж аргументов, подходящий для передачи в [`datetime.datetime.fromtimestamp()`](https://python-all.ru/3.10/library/datetime.html#datetime.datetime.fromtimestamp).220221#### `PyObject *PyDate_FromTimestamp(PyObject *args)`222223*Возвращаемое значение: новая ссылка.*224225Создаёт и возвращает новый объект [`datetime.date`](https://python-all.ru/3.10/library/datetime.html#datetime.date), используя кортеж аргументов, подходящий для передачи в [`datetime.date.fromtimestamp()`](https://python-all.ru/3.10/library/datetime.html#datetime.date.fromtimestamp).226