我正在使用将日期范围作为有效内容的一部分的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?
您可以这样做:
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格式的日期作为输入,并将其调整为最后一个星期五至星期一的日历时段。如果不是您想要的,您可以调整
monday
和friday
来指定不同的日期,但这给出了基本的思想。