Я пытаюсь получить дату предыдущего месяца с помощью 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, гораздо более оборудованный, должен обеспечить что-то лучшее, чем заставить писать собственный script для достижения этой цели. Конечно, я мог бы сделать что-то вроде:
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)
Я не тестировал этот код, и я все равно не хочу его использовать (если я не могу найти другой способ:/)
Спасибо за вашу помощь!