Как узнать прошлую дату с помощью Python?

Привет всем! Несмотря на то, что последнее время мой блог все больше посвящен ежедневным урокам английского и румынского языка, я полон оптимизма не забросить изучение Python (а еще программирования под Android, ага 🙂 ). И сегодня мы узнаем, как узнать прошлую (или будущую) дату с помощью Python.

Для этого будем использовать класс timedelta, входящий в библиотеку datetime. Указанный класс используется для получения какой-либо даты в прошлом или будущем с помощью сложения или вычитания двух дат. Ну, например, в случае, если вам очень сильно нужно узнать, какая дата была некоторое число дней назад, плюс несколько часов и минут.

Использование класса очень простое, и упирается в синтаксис:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
причем, никакие аргументы не являются обязательными, и «по умолчанию» равны нулю. Что интересно — любой из указанных аргументов может быть не только целым или дробными, но даже положительными и отрицательными.

Пример использования — чуть ниже:

UPD.
Решил дописать в качестве полезности все возможные варианты работы с time. Итак:

В Python за работу со временем отвечают time и datetime.

now_date = datetime.date.today() # Текущая дата (без времени)
now_time = datetime.datetime.now() # Текущая дата со временем

cur_year = now_date.year # Год текущий
cur_month = now_date.month # Месяц текущий
cur_day = now_date.day # День текущий
cur_hour = now_time.hour # Час текущий
cur_minute = now_time.minute # Минута текущая
cur_second = now_time.second # Секунда текущие
num_week = now_date.isoweekday() # узнаем день недели (от 1 до 7)

now_date = now_date.replace(2018,2,21) # меняем полностью дату на 21.02.2018
now_date = now_date.replace(day=cur_day) # меняем только день
now_date = now_date.replace(month=cur_month) # меняем только месяц
now_date = now_date.replace(year=cur_year) # меняем только год

ny_2018 = datetime.date(2018,2,21) # создали дату: 21 февраля 2018 года
delta = ny_2018 — now_date # разница (дельта) в между 2-мя датами

delta = datetime.timedelta(days=3) # дельта в 3 дня
now_date = now_date + delta # Узнаем какое число будет через 3 дня
now_date = now_date — delta # или какое число было 3 дня назад

print(now_time.strftime(«%d.%m.%Y %I:%M %p»)) # форматируем дату
Кстати, пример работы с временем (выдача текущего времени под определенный формат) — чуть ниже:

И в самом конце — некоторые подробности для работы со временем:
%S — секунды. От 0 до 61
%M — минуты. От 00 до 59
%H — час. От 00 до 23
%I — час. От 1 до 12
%p — перед или после полудня (AM или PM)
%d — день. От 1 до 31
%j — день как номер года. От 001 до 366
%m — месяц. От 01 до 12
%y — год в виде 2-х последних чисел. От 00 до 99
%Y — год в виде полного числа