["python","date","time"]
python date of the previous month

I am trying to get the date of the previous month with python. Here is what i've tried: str( time.strftime('%Y') ) + str( int(time.strftime('%m'))-1 ) However, this way is bad for 2 reasons: First it returns 20122 for the February of 2012 (instead of 201202) and secondly it will return 0 instead of 12 on January. I have solved this trouble in bash with echo $(date -d"3 month ago" "+%G%m%d") I think that if bash has a built-in way for this purpose, then python, much more equipped, should provide something better than forcing writing one's own script to achieve this goal. Of course i could do something like: 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) I have not tested this code and i don't want to use it anyway (unless I can't find any other way:/) Thanks for your help!
datetime and the datetime.timedelta classes are your friend. find today. use that to find the first day of this month. use timedelta to backup a single day, to the last day of the previous month. print the YYYYMM string you're looking for. Like this: import datetime today = datetime.date.today() first = today.replace(day=1) last_month = first - datetime.timedelta(days=1) print(last_month.strftime("%Y%m")) 201202 is printed.