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

如何用Pandas将带时区的Timestamp转换为本地时间格式?

转换带时区的Timestamp为UTC时间格式

1. 用 Pandas 处理整列数据

如果你的数据存在 Pandas DataFrame 的 timestamp 列中(数据类型是带时区的 datetime64[ns]),可以通过两步完成转换:

# 第一步:把带时区的时间转成UTC时区
df['timestamp_utc'] = df['timestamp'].dt.tz_convert('UTC')
# 第二步:移除时区信息,得到目标格式
df['timestamp_utc'] = df['timestamp_utc'].dt.tz_localize(None)

也可以合并成一行简化操作:

df['timestamp_utc'] = df['timestamp'].dt.tz_convert('UTC').dt.tz_localize(None)

处理后 timestamp_utc 列的结果就是 2023-02-04 05:08:42 这种无时区的Timestamp格式。

2. 用 Python 原生 datetime 处理单个时间值

如果是单个带时区的 datetime 对象,这么处理:

from datetime import datetime

# 示例带时区的时间对象
ts = datetime.fromisoformat('2023-02-04 08:08:42+03:00')
# 转成UTC时区
ts_utc = ts.astimezone(datetime.timezone.utc)
# 移除时区信息
ts_utc_naive = ts_utc.replace(tzinfo=None)
# 输出成字符串格式的话用strftime
print(ts_utc_naive.strftime('%Y-%m-%d %H:%M:%S'))
# 输出结果:2023-02-04 05:08:42

核心逻辑说明

  • tz_convert('UTC') 或 astimezone(datetime.timezone.utc):负责把带时区的时间转换为UTC时间,会自动计算偏移量(比如+03:00的时间减去3小时)。
  • tz_localize(None) 或 replace(tzinfo=None):移除时间对象的时区标记,最终得到符合需求的无时区时间格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:32:00