Добавление relativedelta(month=2)
к объекту datetime
даст вам ту же дату и время, за исключением февраля. Если это создает несуществующую дату, дата будет усечена до последней существующей даты, например:
from datetime import datetime
from dateutil.relativedelta import relativedelta
print(datetime(2015, 3, 30) + relativedelta(month=2)) # 2015-02-28 00:00:00
Как поясняется в документации по относительной дельте:
год, месяц, день, час, минута, секунда, микросекунда:
Абсолютная информация (аргумент в единственном числе); добавление или вычитание относительной дельты с абсолютной информацией не выполняет арифметическую операцию, а скорее ЗАМЕНЯЕТ соответствующее значение в исходной дате и времени значением (ями) в относительной дельте.
Все «единственные» аргументы обрабатываются как «установить этот компонент объекта, к которому я прибавляюсь/из которого я вычитаюсь, к этому значению», тогда как множественные версии тех же аргументов говорят: «Добавить/вычесть это число к/из этого компонента ".
Обратите внимание, что в документации относительной дельты также указан порядок применения каждого компонента, но достаточно сказать, что абсолютные значения применяются перед относительными значениями, поэтому relativedelta(month=3, months=2)
установит месяц на март, а затем добавит 2 месяца ( так что, в основном, это эквивалентно relativedelta(month=5)
).
person
Paul
schedule
23.04.2017