我正在尝试使用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 。

  • 今天找到。
  • 使用它来查找本月的第一天。
  • 使用timedelta将一天备份到上个月的最后一天。
  • 打印您要查找的YYYYMM字符串。

  • 像这样:
     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/

    10-09 17:10