在 Python 中获取前一天的数据
get the data for the previous day in Python
我是 Python
的新手,需要从 RESTAPI
中提取前一天的数据,在我的 RESTAPI
请求中,我需要提供 QueryStartDate
和 QueryEndDate
。到目前为止,为了测试,我手动提供了前一天的日期 (sysdate-1)。但是现在我想自动化这个过程,我想应用 Python 函数来始终获取前一天的日期,这样我就可以提取前一天的全天数据。
我使用的是 UTC 时区,所以这部分 T12:00:00.000Z
我需要保留原样,否则我对 RESTAPI
的请求不会 运行。所以我只需要更改日期部分。
"QueryStartDate": "2021-09-02T12:00:00.000Z"
"QueryEndDate": "2021-09-02T12:10:00.000Z"
我尝试应用 datetime.now() - timedelta(1)
函数来获取前一天的日期,但由于语法问题不确定 RESTAPI 请求是否抛出错误。
使用这些代码行可能会帮助您找到前一天
import datetime
Previous_Date = datetime.datetime.today() - datetime.timedelta(days=1)
print (Previous_Date)
如果您使用的是 UTC 时区,请尝试:
from datetime import datetime, timedelta, timezone
todayUTC = datetime.now(timezone.utc).date()
yesterdayUTC = today - timedelta(1)
print(todayUTC, yesterdayUTC)
如果您需要格式为前一天的字符串值:
- 格式 1:
"2021-09-02T00:00:00.000000+0000"
- 格式 2:
"2021-09-02T00:00:00.000000Z"
从开始时间00:00:00.000000
到结束时间23:59:59.999999
,可以使用datetime.strftime() along with the time.min and time.max:
from datetime import datetime, time, timedelta, timezone
yesterday_dt = datetime.now(timezone.utc) - timedelta(days=1)
yesterday_start_dt = datetime.combine(yesterday_dt, time.min, tzinfo=timezone.utc)
yesterday_end_dt = datetime.combine(yesterday_dt, time.max, tzinfo=timezone.utc)
format1 = "%Y-%m-%dT%H:%M:%S.%f%z"
format2 = "%Y-%m-%dT%H:%M:%S.%fZ"
queryStartDate_format1 = yesterday_start_dt.strftime(format1)
queryEndDate_format1 = yesterday_end_dt.strftime(format1)
print("Format 1:")
print(queryStartDate_format1)
print(queryEndDate_format1)
queryStartDate_format2 = yesterday_start_dt.strftime(format2)
queryEndDate_format2 = yesterday_end_dt.strftime(format2)
print("Format 2:")
print(queryStartDate_format2)
print(queryEndDate_format2)
输出
Format 1:
2021-09-02T00:00:00.000000+0000
2021-09-02T23:59:59.999999+0000
Format 2:
2021-09-02T00:00:00.000000Z
2021-09-02T23:59:59.999999Z
更新
如果导入是基于根的,这里是一个版本datetime
。
import datetime
yesterday_dt = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=1)
yesterday_start_dt = datetime.datetime.combine(yesterday_dt, datetime.time.min, tzinfo=datetime.timezone.utc)
yesterday_end_dt = datetime.datetime.combine(yesterday_dt, datetime.time.max, tzinfo=datetime.timezone.utc)
format1 = "%Y-%m-%dT%H:%M:%S.%f%z"
format2 = "%Y-%m-%dT%H:%M:%S.%fZ"
queryStartDate_format1 = yesterday_start_dt.strftime(format1)
queryEndDate_format1 = yesterday_end_dt.strftime(format1)
print("Format 1:")
print(queryStartDate_format1)
print(queryEndDate_format1)
queryStartDate_format2 = yesterday_start_dt.strftime(format2)
queryEndDate_format2 = yesterday_end_dt.strftime(format2)
print("Format 2:")
print(queryStartDate_format2)
print(queryEndDate_format2)
我是 Python
的新手,需要从 RESTAPI
中提取前一天的数据,在我的 RESTAPI
请求中,我需要提供 QueryStartDate
和 QueryEndDate
。到目前为止,为了测试,我手动提供了前一天的日期 (sysdate-1)。但是现在我想自动化这个过程,我想应用 Python 函数来始终获取前一天的日期,这样我就可以提取前一天的全天数据。
我使用的是 UTC 时区,所以这部分 T12:00:00.000Z
我需要保留原样,否则我对 RESTAPI
的请求不会 运行。所以我只需要更改日期部分。
"QueryStartDate": "2021-09-02T12:00:00.000Z"
"QueryEndDate": "2021-09-02T12:10:00.000Z"
我尝试应用 datetime.now() - timedelta(1)
函数来获取前一天的日期,但由于语法问题不确定 RESTAPI 请求是否抛出错误。
使用这些代码行可能会帮助您找到前一天
import datetime
Previous_Date = datetime.datetime.today() - datetime.timedelta(days=1)
print (Previous_Date)
如果您使用的是 UTC 时区,请尝试:
from datetime import datetime, timedelta, timezone
todayUTC = datetime.now(timezone.utc).date()
yesterdayUTC = today - timedelta(1)
print(todayUTC, yesterdayUTC)
如果您需要格式为前一天的字符串值:
- 格式 1:
"2021-09-02T00:00:00.000000+0000"
- 格式 2:
"2021-09-02T00:00:00.000000Z"
从开始时间00:00:00.000000
到结束时间23:59:59.999999
,可以使用datetime.strftime() along with the time.min and time.max:
from datetime import datetime, time, timedelta, timezone
yesterday_dt = datetime.now(timezone.utc) - timedelta(days=1)
yesterday_start_dt = datetime.combine(yesterday_dt, time.min, tzinfo=timezone.utc)
yesterday_end_dt = datetime.combine(yesterday_dt, time.max, tzinfo=timezone.utc)
format1 = "%Y-%m-%dT%H:%M:%S.%f%z"
format2 = "%Y-%m-%dT%H:%M:%S.%fZ"
queryStartDate_format1 = yesterday_start_dt.strftime(format1)
queryEndDate_format1 = yesterday_end_dt.strftime(format1)
print("Format 1:")
print(queryStartDate_format1)
print(queryEndDate_format1)
queryStartDate_format2 = yesterday_start_dt.strftime(format2)
queryEndDate_format2 = yesterday_end_dt.strftime(format2)
print("Format 2:")
print(queryStartDate_format2)
print(queryEndDate_format2)
输出
Format 1:
2021-09-02T00:00:00.000000+0000
2021-09-02T23:59:59.999999+0000
Format 2:
2021-09-02T00:00:00.000000Z
2021-09-02T23:59:59.999999Z
更新
如果导入是基于根的,这里是一个版本datetime
。
import datetime
yesterday_dt = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=1)
yesterday_start_dt = datetime.datetime.combine(yesterday_dt, datetime.time.min, tzinfo=datetime.timezone.utc)
yesterday_end_dt = datetime.datetime.combine(yesterday_dt, datetime.time.max, tzinfo=datetime.timezone.utc)
format1 = "%Y-%m-%dT%H:%M:%S.%f%z"
format2 = "%Y-%m-%dT%H:%M:%S.%fZ"
queryStartDate_format1 = yesterday_start_dt.strftime(format1)
queryEndDate_format1 = yesterday_end_dt.strftime(format1)
print("Format 1:")
print(queryStartDate_format1)
print(queryEndDate_format1)
queryStartDate_format2 = yesterday_start_dt.strftime(format2)
queryEndDate_format2 = yesterday_end_dt.strftime(format2)
print("Format 2:")
print(queryStartDate_format2)
print(queryEndDate_format2)