当前位置: 首页 > 面试题库 >

上个月的python日期

宦烈
2023-03-14
问题内容

我正在尝试使用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类是您的朋友。

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

像这样:

 import datetime
 today = datetime.date.today()
 first = today.replace(day=1)
 lastMonth = first - datetime.timedelta(days=1)
 print(lastMonth.strftime("%Y%m"))

201202 打印。



 类似资料:
  • 问题内容: 我在下面的日期有硬编码的查询。我的目标是删除已编码的日期;该查询在运行时应提取上个月的数据。 我应该为此使用函数吗? 问题答案: 稍微修改Ben的查询,

  • 如果我有一个返回日期的变量,格式为dd-MMM-yyyy,那么2014年8月28日,如何获取上个月的日期。 我可以通过以下方式修改月份: 本质上,这是在月份中增加一个...但是我怎么能解释年份,所以如果当前日期是2014年12月12日,之前的日期是2013年1月12日? 我的应用程序使用AngularJS可以使用过滤器。 更新时间: 为什么虽然月份增加了,但日子显示为01而不是28?

  • 问题内容: 我想知道上个月的日期。我这样写: 这给了我当前的月份/年份。我不知道我是否应该使用,。时间戳记了吗?我是否需要在事后添加一些内容以进行重置,以便在我网站上所有时间戳的所有时间中,日期都不设置为上个月?我正在尝试RTM,但我很难弄清楚。 问题答案: 获取上个月的日期很简单 11月3日返回

  • 我使用的是react-datepicker 3.1.3版本,我试图显示前一个月和现在的月份,使用的是monthsShown和show PreviousMonths,月份Shown=1它工作正常,但月份Shown

  • 当我运行上面的查询以从当前日期获取上个月的第一天和最后一天时,我得到了一个如下所述的错误。 错误:Amazon无效操作:函数pg_catalog.date_diff(“未知”,整数,不带时区的时间戳)不存在;[SQL State=42883,DB ErrorCode=500310] 请帮我解决这个问题。

  • 我有一个包含日期的列表,列表如下: 我想从列表中提取每个月的最高日期。我想要的输出如下: 我试图使用找到一个月的最大日期,但它给出了列表中的总体最大日期。有没有办法从列表中找到每个月的最大日期。