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

如何在Pandas中将"YYYY-MM-DD hh:mm:ss Etc/GMT"格式字符串转为UTC时间戳

处理带Etc/GMT时区的Pandas类日期时间字符串转UTC时区Timestamp

需求说明

有一个Pandas列,其中的类日期时间字符串示例如下:

example_value = "2022-06-24 16:57:33 Etc/GMT"

需要将其转换为带UTC时区的Timestamp,期望输出:

Timestamp('2022-06-24 16:57:33+0000', tz='UTC')

解决方案

可以通过Pandas的pd.to_datetime方法解析带时区的字符串,再转换到UTC时区实现需求。同时,Etc/GMT时区可通过pytz库获取。

步骤1:导入依赖库

import pandas as pd
import pytz

步骤2:获取Etc/GMT时区

通过pytz的时区列表筛选出目标时区:

gmt_tz = list(filter(lambda x: 'GMT' in x, pytz.all_timezones))[0]
# 输出: 'Etc/GMT'

步骤3:解析并转换时区

  • 处理单个值:
# 解析带时区的字符串
dt_with_tz = pd.to_datetime(example_value, format="%Y-%m-%d %H:%M:%S %Z", utc=False)
# 转换为UTC时区
utc_timestamp = dt_with_tz.tz_convert('UTC')
print(utc_timestamp)
# 输出: Timestamp('2022-06-24 16:57:33+0000', tz='UTC')
  • 处理Pandas列:
    假设你的数据框是df,目标列是datetime_str,可以用批量处理方式:
df['utc_timestamp'] = pd.to_datetime(df['datetime_str'], format="%Y-%m-%d %H:%M:%S %Z", utc=False).dt.tz_convert('UTC')

补充说明

Etc/GMT时区在pytz中与UTC偏移为0,因此转换后的时间数值与原时间一致,但时区标记为UTC,完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:05:34