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