gpt4 book ai didi

python - date_range 不接受我想要使用的变量?

转载 作者:行者123 更新时间:2023-12-01 04:19:13 26 4
gpt4 key购买 nike

当我输入“2015-08”等值时,我的 date_range 会按预期工作。如果我使用 startdate 变量,那么它就不再起作用了?我不明白为什么会这样。

我收到的错误是“无法将输入转换为时间戳”

最佳答案

不是为了分数。我有点困惑,你所做的不就是基本上如下吗?

代码:

from datetime import datetime, timedelta

now = datetime.now()
print now.strftime("%Y-%m")
month_ago = now.replace(day=1) - timedelta(days = 1)
print month_ago.strftime("%Y-%m")
months_ago = month_ago.replace(day=1) - timedelta(days = 1)
print months_ago.strftime("%Y-%m")

输出:

2015-11
2015-10
2015-09

以上可能不是完美的答案,但您可以用任何日期时间替换现在,它基本上会为您提供当前和过去两个月的信息。当然,根据需要进行调整。

编辑:

您甚至可以更进一步,只需创建一个函数,允许您指定之前的月份数或使用自定义日期。

from datetime import datetime, timedelta

def last_n_months(num_of_months, start_date=datetime.now(), include_curr=True):
f = "%Y-%m"
curr = start_date
if include_curr:
yield curr.strftime(f)
for num in range(num_of_months):
curr = curr.replace(day=1) - timedelta(days=1)
yield curr.strftime(f)

# This month and last 12 months.
print [m for m in last_n_months(12)]
# ['2015-11', '2015-10', '2015-09', '2015-08', '2015-07', '2015-06', '2015-05', '2015-04', '2015-03', '2015-02', '2015-01', '2014-12', '2014-11']

# Last 12 months only.
print [m for m in last_n_months(12, include_curr=False)]
# ['2015-10', '2015-09', '2015-08', '2015-07', '2015-06', '2015-05', '2015-04', '2015-03', '2015-02', '2015-01', '2014-12', '2014-11']

# Last 12 months from custom date, exclude custom date.
d = datetime(2012, 6, 1)
print [m for m in last_n_months(12, d, False)]
# ['2012-05', '2012-04', '2012-03', '2012-02', '2012-01', '2011-12', '2011-11', '2011-10', '2011-09', '2011-08', '2011-07', '2011-06']

关于python - date_range 不接受我想要使用的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com