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

yfinance返回的时间索引末尾的-04:00/-05:00后缀代表什么?

问题解答

1. 时间索引末尾-04:00/-05:00的含义

这两个是时区偏移标识,对应美股交易所在的美国东部时区的时令差异:

  • -04:00代表美国东部夏令时(EDT),该时区时间比协调世界时(UTC)晚4小时,也就是UTC-4
  • -05:00代表美国东部冬令时(EST),该时区时间比协调世界时(UTC)晚5小时,也就是UTC-5
    示例中10月的时间用-04:00、11月的时间用-05:00,刚好对应美国每年3月到11月上旬实行夏令时、其余时间实行冬令时的规则,和美股交易时间的时区完全匹配。

2. 时间戳比较不相等的原因

你生成的pd.Timestamp(2021, 10, 25, 9,30)属于无时区信息的朴素时间戳(naive timestamp),而yfinance返回的Datetime索引是带时区信息的感知时间戳(aware timestamp),两类时间戳在pandas中默认无法直接等价比较,哪怕字面显示的时间数值完全一致,也会返回False。

解决方案

如果需要正常比较,统一两类时间戳的时区属性即可:

  • 方法1:生成带对应时区的测试时间戳(更推荐,不会丢失原始信息)
test = pd.Timestamp(2021, 10, 25, 9,30, tz='America/New_York')

此时再和索引比较就会返回正确的布尔结果

  • 方法2:把DataFrame的索引转为朴素时间戳(会丢失时区信息,非必要不推荐)
df.index = df.index.tz_localize(None)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:06:08