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

如何移除Pandas时间戳时区信息并保留本地时间

解决方法

首先要纠正你初始代码中的时区转换错误:pd.to_datetime(epochs, unit='s')生成的是UTC时间的 naive datetime,dt.tz_localize("US/Pacific")是给这个naive时间直接添加US/Pacific时区标记(相当于把UTC时间当成了US/Pacific本地时间),这和你需要的"将UTC epoch转换为US/Pacific本地时间"不符。

正确完整流程

  1. 将epoch转换为带UTC时区的datetime
  2. 转换为US/Pacific时区的带时区datetime
  3. 移除时区信息,保留本地时间

代码实现:

import numpy as np
import pandas as pd

epochs = np.arange(1644516000, 1644516000 + 1800*10, 1800)
df = pd.DataFrame({'time': epochs})

# 正确转换为US/Pacific时区的带时区时间戳
df['time'] = pd.to_datetime(df['time'], unit='s').dt.tz_localize('UTC').dt.tz_convert("US/Pacific")

# 移除时区信息,保留本地时间
df['local_time'] = df['time'].dt.tz_localize(None)

验证结果

执行后df['local_time']的输出和你期望的:

pd.date_range('2022-02-10 10:00', freq='30min', periods=10)

完全一致。

如果你已经有错误转换后的时间列

可以先修正时区标记,再按上述步骤处理:

# 修正错误的时区转换,得到正确的US/Pacific带时区时间
df['time_corrected'] = df['time'].dt.tz_convert('UTC').dt.tz_localize(None).dt.tz_localize('UTC').dt.tz_convert('US/Pacific')
# 移除时区保留本地时间
df['local_time'] = df['time_corrected'].dt.tz_localize(None)

内容的提问来源于stack exchange,提问作者Eyal S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:55:22