Класс date() модуля datetime
Варианты создания объекта даты datetime.date.
Синтаксис:
Параметры:
Все аргументы обязательны. Аргументы должны быть целыми числами.
year
- год в пределахdatetime.MINYEAR <= year <= datetime.MAXYEAR
,month
- месяц в пределах1 <= month <= 12
,day
- день в пределах1 <= day <= n
, n - количество дней в данном месяце и году.
Если задан аргумент вне этих диапазонов, вызывается исключение ValueError
.
Возвращаемое значение:
Описание:
Класс date()
модуля datetime
- объект даты, который представляет дату - год, месяц и день в идеализированном календаре, текущий григорианский календарь бесконечно расширяется в обоих направлениях.
Атрибуты экземпляра datetime.date
(только для чтения):
date.year
- возвращает год в диапазоне, указанном выше,date.month
- возвращает месяц в диапазоне, указанном выше,date.day
- возвращает день в диапазоне, указанном выше.
Создание объекта datetime.date
другими способами:
datetime.date
другими способами:datetime.date.today()
:
Подкласс datetime.date.today()
возвращает текущую местную дату, что эквивалентно вызову выражения datetime.date.fromtimestamp(time.time())
.
datetime.date.fromtimestamp(timestamp)
:
Подкласс datetime.date.fromtimestamp()
возвращает локальную дату, соответствующую метке времени POSIX, например возвращается функцией time.time()
.
Если отметка времени выходит за пределы диапазона значений, поддерживаемых функцией localtime()
платформы, то это может вызвать исключение OverflowError
, а при сбое системной localtime()
- исключение OSError
. Отметка времени обычно ограничивается годами с 1970 по 2038 год.
Обратите внимание, что в системах без POSIX, которые включают в себя понятие високосных секунд в своем значении временной метки, високосные секунды игнорируются функцией fromtimestamp()
.
datetime.date.fromisoformat(date_string)
:
Подкласс datetime.date.fromisoformat()
возвращает дату, соответствующую строке date_string
в формате, заданным в любом допустимом формате ISO 8601, кроме порядковых дат (например, YYYY-DDD
):
Изменено в Python 3.11: ранее этот метод поддерживал только формат YYYY-MM-DD
.
datetime.date.fromisocalendar(year, week, day)
:
Подкласс datetime.date.fromisocalendar()
возвращает дату, соответствующую календарной дате ISO, указанной по году year
, неделе week
и дню day
.
Это обратное значение возвращаемое методом date.isocalendar()
.
Поддерживаемые операции:
Операция | Результат | Заметка |
---|---|---|
date2 = date1 + timedelta | 'date2' это 'timedelta.days' дней, удаленных из 'date1'. | (1) |
date2 = date1 - timedelta | Вычисляет 'date2' так, что 'date2 + timedelta == date1'. | (2) |
timedelta = date1 - date2 | (3) | |
date1 < date2 | 'date1' считается меньше чем 'date2', когда 'date1' предшествует 'date2' во времени. | (4) |
Заметки:
date2
перемещается вперед во времени, еслиtimedelta.days > 0
, или назад, еслиtimedelta.days < 0
. После операции верно равенствоdate2 - date1 == timedelta.days
,timedelta.seconds
иtimedelta.microseconds
игнорируются. Еслиdate2.year
будет меньшеdatetime.MINYEAR
или большеdatetime.MAXYEAR
то появляется исключениеOverflowError
.timedelta.seconds
иtimedelta.microseconds
игнорируются.Значение точно и не может переполниться.
timedelta.seconds
иtimedelta.microseconds
равны 0, а после справедливо равенствоdate2 + timedelta == date1
.Другими словами,
date1< date2
тогда и только тогда, когдаdate1.toordinal() < date2.toordinal()
. Сравнение даты вызывает исключениеTypeError
, если один из объектов сравнения не является объектом даты. Если один из объектов сравнения имеет атрибутtimetuple()
, то возвращается исключениеNotImplemented
. Этот хук дает другим типам объектов даты возможность реализовать сравнение смешанного типа. В противном случае, когда объект даты сравнивается с объектом другого типа, то вызывается исключениеTypeError
.
В логическом контексте все объекты даты считаются истинными.
Last updated