Расчет даты в будущем или прошлом

Python:
Расчет даты в будущем или прошлом

Как это сделать:

Модуль datetime в Python значительно облегчает работу с датами и временем. Взгляните:

from datetime import datetime, timedelta

# Текущая дата и время
now = datetime.now()
print("Сейчас: ", now)

# Добавляем 10 дней
future_date = now + timedelta(days=10)
print("Будущая дата (+10 дней): ", future_date)

# Вычитаем 5 дней
past_date = now - timedelta(days=5)
print("Прошлая дата (-5 дней): ", past_date)

Вывод может выглядеть так:

Сейчас: 2023-04-01 12:34:56.789012
Будущая дата (+10 дней): 2023-04-11 12:34:56.789012
Прошлая дата (-5 дней): 2023-03-27 12:34:56.789012

Просто, правда? Просто измените количество дней или используйте weeks (недели), hours (часы), minutes (минуты) или seconds (секунды) в timedelta, чтобы перейти к нужному времени.

Подробнее

Давным-давно расчет дат и времени был сложной задачей. Приходилось иметь дело с високосными годами, часовыми поясами, переходом на летнее время - настоящий беспорядок. С модулями datetime, date и time в Python все стало проще. Модуль обрабатывает все сложности за кулисами.

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

С точки зрения реализации, когда вы используете timedelta, Python корректирует дату, учитывая високосные года и тому подобное. Всегда проверяйте свои результаты, особенно когда дело касается часовых поясов. И помните, что по умолчанию datetime наивен; он не учитывает часовые пояса, если вы ему об этом не скажете.

Смотрите также