我正在尝试使用python获取上个月的日期。
这是我尝试过的:
str( time.strftime('%Y') ) + str( int(time.strftime('%m'))-1 )
但是,这种方法很糟糕,原因有两个:首先,它返回2012年2月的20122(而不是201202),其次它将返回0而不是1月的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)
我没有测试过此代码,也不想使用它(除非我找不到其他方法:/)
谢谢你的帮助!
最佳答案
datetime和datetime.timedelta类是您的 friend 。
像这样:
import datetime
today = datetime.date.today()
first = today.replace(day=1)
lastMonth = first - datetime.timedelta(days=1)
print(lastMonth.strftime("%Y%m"))
201202
已打印。关于python - 上个月的python日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9724906/