Próbuję uzyskać datę poprzedniego miesiąca za pomocą Pythona. Oto, czego próbowałem:
str( time.strftime('%Y') ) + str( int(time.strftime('%m'))-1 )
Jednak ten sposób jest zły z 2 powodów: po pierwsze zwraca 20122 dla lutego 2012 (zamiast 201202), a po drugie zwraca 0 zamiast 12 w styczniu.
Rozwiązałem ten problem w bash z
echo $(date -d"3 month ago" "+%G%m%d")
Myślę, że jeśli bash ma wbudowany sposób do tego celu, to znacznie lepiej wyposażony python powinien zapewnić coś lepszego niż zmuszanie do pisania własnego skryptu, aby osiągnąć ten cel. Oczywiście mógłbym zrobić coś takiego:
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)
Nie testowałem tego kodu i i tak nie chcę go używać (chyba że nie mogę znaleźć innego sposobu: /)
Dzięki za pomoc!