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

Python中为API调用的日期变量设置IST与EDT时区方法问询

为日期变量设置IST和EDT时区的实现方案

要给代码里的startDate和endDate指定时区,得把原生的无时区datetime对象转成带时区信息的对象,推荐用Python 3.9+自带的zoneinfo标准库,低版本可以用第三方库pytz。

1. 设置为IST(印度标准时间)

用Python 3.9+的zoneinfo:

import datetime as dt
from zoneinfo import ZoneInfo

# 获取当前带IST时区的时间
now_ist = dt.datetime.now(tz=ZoneInfo("Asia/Kolkata"))
startDate = now_ist - dt.timedelta(days=2 * 365)
endDate = now_ist

data.getDataset(stock=stock, startDate=startDate, endDate=endDate, con=con)

用低版本的pytz:

import datetime as dt
import pytz

ist_tz = pytz.timezone("Asia/Kolkata")
now_ist = dt.datetime.now(ist_tz)
startDate = now_ist - dt.timedelta(days=2 * 365)
endDate = now_ist

data.getDataset(stock=stock, startDate=startDate, endDate=endDate, con=con)

2. 设置为美国EDT(东部夏令时)

注意:EDT是夏令时,直接用IANA标准时区America/New_York即可,它会自动处理夏令时/冬令时的切换,不用手动指定EDT缩写:

用Python 3.9+的zoneinfo:

import datetime as dt
from zoneinfo import ZoneInfo

now_edt = dt.datetime.now(tz=ZoneInfo("America/New_York"))
startDate = now_edt - dt.timedelta(days=2 * 365)
endDate = now_edt

data.getDataset(stock=stock, startDate=startDate, endDate=endDate, con=con)

用低版本的pytz:

import datetime as dt
import pytz

edt_tz = pytz.timezone("America/New_York")
now_edt = dt.datetime.now(edt_tz)
startDate = now_edt - dt.timedelta(days=2 * 365)
endDate = now_edt

data.getDataset(stock=stock, startDate=startDate, endDate=endDate, con=con)

关键提醒

  • 别用dt.datetime.today()直接生成日期,它返回的是不带时区的“裸”对象,必须转成带时区的对象才能正确传给API。
  • 一定要用IANA标准时区名(比如Asia/Kolkata、America/New_York),别用IST、EDT这类缩写——缩写可能有歧义,还没法自动处理夏令时切换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:37:11