You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何自动获取前一天UTC日期用于RESTAPI请求参数

问题原因

你之前的写法存在两个核心问题:

  • datetime.now()默认获取的是本地时区时间,不符合你要求的UTC时区标准,会导致日期计算偏差
  • 没有将datetime对象格式化为接口要求的字符串格式,直接传入datetime对象会触发请求报错
实现代码

通用兼容写法(支持Python 3.x所有版本)

from datetime import datetime, timedelta

# 取UTC时区当前时间,往前推1天得到前一天日期
utc_yesterday = datetime.utcnow() - timedelta(days=1)
# 提取日期部分格式化为YYYY-MM-DD
date_str = utc_yesterday.strftime("%Y-%m-%d")

# 拼接固定后缀生成请求参数
request_params = {
    "QueryStartDate": f"{date_str}T12:00:00.000Z",
    "QueryEndDate": f"{date_str}T12:10:00.000Z"
}

Python 3.9+ 规范写法(避免utcnow()未来版本弃用风险)

from datetime import datetime, timedelta
from zoneinfo import ZoneInfo

# 显式指定UTC时区获取当前时间
utc_now = datetime.now(tz=ZoneInfo("UTC"))
utc_yesterday = utc_now - timedelta(days=1)
date_str = utc_yesterday.strftime("%Y-%m-%d")

request_params = {
    "QueryStartDate": f"{date_str}T12:00:00.000Z",
    "QueryEndDate": f"{date_str}T12:10:00.000Z"
}
验证说明

生成的参数会完全符合接口要求的格式,示例输出如下:

{
    "QueryStartDate": "2024-05-20T12:00:00.000Z",
    "QueryEndDate": "2024-05-20T12:10:00.000Z"
}

内容的提问来源于stack exchange,提问作者Marcus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 07:51:02