如何为此API设置星期几的日期范围?

问题描述 投票:-1回答:1

我正在使用将日期范围作为有效内容的一部分的API。

https://developer.pagerduty.com/api-reference/reference/REST/openapiv3.json/paths/~1incidents/get

'since'和'until'用于指定开始到结束的日期/时间。调用此API时,我想将'since'指定为星期五晚上8点,将'until'指定为星期一晚上8AM,以便我可以列出这段时间的事件。我目前正在使用特定日期范围(例如

)对其进行测试
payload = {
   'since': '2020-03-27T20:00-05',
   'until': '2019-03-30T08:00-05'
}

我如何将日期范围设置为一周中的一天,但没有特定的日期,但是指定的时间范围是从周五8PM到周一8AM?

python python-3.x date date-range
1个回答
0
投票
如果我正确理解了您的问题,您希望能够获取任何随机日期并将其转换为周五8PM到周一8AM的日期范围?

您可以这样做:

import datetime def make_payload(date_str): today = datetime.date.fromisoformat(date_str) monday = datetime.datetime.fromisoformat( str(datetime.date.fromordinal( (today.toordinal() - today.toordinal() % 7) + 1)) + " 08:00") friday = datetime.datetime.fromisoformat( str(datetime.date.fromordinal( (today.toordinal() - today.toordinal() % 7) - 2)) + " 20:00") payload = {'since': friday, 'until': monday} return payload payload = make_payload('2020-04-07') print(payload['since'].isoformat(), payload['until'].isoformat())

将输出:

2020-04-03T20:00:00 2020-04-06T08:00:00

它以ISO格式的日期作为输入,并将其调整为最后一个星期五至星期一的日历时段。如果不是您想要的,您可以调整mondayfriday来指定不同的日期,但这给出了基本的思想。

© www.soinside.com 2019 - 2024. All rights reserved.