Сообщить об ошибке.

Примеры использования datetime.date() в Python

Приемы работы с datetime.date()

В этом разделе представлены примеры использования объекта даты datetime.date.

Содержание:

Пример подсчета дней до события:

>>> import datetime, time
>>> today = datetime.date.today()
>>> my_birthday = datetime.date(today.year, 12, 6)
>>> if my_birthday < today:
...     my_birthday = my_birthday.replace(year=today.year + 1)
... 
>>> my_birthday
datetime.date(2020, 12, 6)
>>> time_to_birthday = abs(my_birthday - today)
>>> time_to_birthday.days
# 215

Сравнение даты:

>>> import datetime
>>> today = datetime.date.today()
>>> date = datetime.date.fromtimestamp(time.time())
>>> today == date
# True
>>> date.replace(month=7, day=26)
>>> today == date
# False
>>> today < date
# True

Форматирование вывода строки даты:

>>> import datetime
>>> today = datetime.date.today()
>>> today.isoformat()
# '2020-05-05'
>>> today.strftime("%d/%m/%y")
# '05/05/20'
>>> today.strftime("%A %d. %B %Y")
# 'Tuesday 05. May 2020'
>>> today.ctime()
# 'Tue May  5 00:00:00 2020'
>>> 'The {1} is {0:%d}, the {2} is {0:%B}.'.format(today, "day", "month")
# 'The day is 05, the month is May.'

Извлечение "компонентов" даты.

>>> import datetime
>>> today = datetime.date.today()

>>> struct = today.timetuple()
>>> for item in struct:
...     print(item)
...
# 2020    year
# 5       month
# 5       day
# 0
# 0
# 0
# 1       день недели, (0 = понедельник)
# 126     126-й день в году
# -1

>>> ic = today.isocalendar()
>>> for item in ic:
...     print(item)
... 
# 2020    год
# 19      номер недели
# 2       день недели, (1 = понедельник)

Объект даты является неизменным.

>>> import datetime, time
>>> today = datetime.date.today()
>>> today
# datetime.date(2020, 5, 6)

# Все операции по изменению производят новый объект
>>> today.replace(year=2022)
# datetime.date(2022, 5, 6)
>>> today
# datetime.date(2020, 5, 6)