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