Python дата предыдущего месяца

Я пытаюсь получить дату предыдущего месяца с помощью python. Вот что я пробовал:

str( time.strftime('%Y') ) + str( int(time.strftime('%m'))-1 )

Однако этот способ плох по двум причинам: во-первых, он возвращает 20122 для февраля 2012 года (вместо 201202), а во-вторых, он возвращает 0 вместо 12 для января.

Я решил эту проблему в bash с помощью

echo $(date -d"3 month ago" "+%G%m%d")

Я думаю, что если в bash есть встроенный способ для этой цели, то python, гораздо более оборудованный, должен предоставить что-то лучшее, чем принуждение к написанию собственного скрипта для достижения этой цели. . Конечно, я мог бы сделать что-то вроде:

if int(time.strftime('%m')) == 1:
    return '12'
else:
    if int(time.strftime('%m')) < 10:
        return '0'+str(time.strftime('%m')-1)
    else:
        return str(time.strftime('%m') -1)

Я не проверял этот код и все равно не хочу его использовать (если только не найду другого способа:/)

Спасибо за помощь!

111
задан philippe 15 March 2012 в 17:22
поделиться