Получить дату несколько дней или месяцев назад

В одном из предыдущих постов я уже рассказывал об библиотеки datetime. В этом посте я хочу продолжить знакомить Вас с этой библиотекой, а конкретнее, с ее классом timedelta.


Этот класс представляет собой заданный промежуток времени. И используется, в большинстве своем, для получения какой то прошедшей либо грядущей даты либо времени посредством вычитания или сложения двух дат. Например, если Вам нужно получить дату  через час, дату вчерашнего дня, дату месяц назад и т.д.

Синтаксис:

datetime.timedelta(
days=0,
seconds=0,
microseconds=0,
milliseconds=0,
minutes=0,
hours=0,
weeks=0
)

Все аргументы являются необязательными и по умолчанию равны 0. Аргументы могут быть целыми или дробными, а может быть положительными либо отрицательными.


Примеры использования


Получаем дату вчерашнего дня:

from datetime import date, timedelta

print(date.today())
print(date.today() - timedelta(days=1))

2015-12-14
2015-12-13


Получаем дату месяц назад:

from datetime import date, timedelta

print(date.today())
print(date.today() - timedelta(days=31))

2015-12-14
2015-11-13


Получаем время через 2 часа назад:

from datetime import timedelta, datetime

print(datetime.now())
print(datetime.now() + timedelta(hours=2))

2015-12-14 13:59:00.724516
2015-12-14 15:59:00.724611

Получаем дату без трех часов как неделю назад:

from datetime import timedelta, datetime

print(datetime.now())
print(datetime.now() - timedelta(days=7, hours=3))

2015-12-14 14:05:31.426143
2015-12-07 11:05:31.426229