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

如何用Python将Excel中UTC/GMT时间戳转换为旧金山太平洋夏令时?

用Python批量转换Twitter时间戳为旧金山PDT时间

嘿,我来帮你搞定这5万多条时间戳的转换问题!之前试过网上方法没成功,大概率是没处理好时区的自动切换(毕竟PDT是夏令时,冬天会自动转成PST UTC-8),用pandas+pytz的组合能完美解决,而且处理大数据量速度超快。

准备工作:安装必要库

先确保你装了这几个工具库,打开终端执行:

pip install pandas pytz openpyxl
  • pandas:快速读取、批量处理Excel里的海量数据
  • pytz:专业处理时区转换,自动识别夏令时/冬令时切换
  • openpyxl:支持读写.xlsx格式的Excel文件

完整代码实现

下面是直接能用的代码,你只需要替换你的时间戳列名和文件路径就行:

import pandas as pd
import pytz

# 1. 读取目标Excel文件,替换成你的文件路径
df = pd.read_excel('hello123.xlsx', engine='openpyxl')

# 2. 解析GMT时间戳(Twitter的时间戳格式通常是类似 "Wed Oct 11 02:14:20 +0000 2023")
# 把'gmt_time'替换成你实际的时间戳列名,比如'tweet_created_at'
df['gmt_time'] = pd.to_datetime(df['gmt_time'], utc=True)

# 3. 转换为旧金山当地时间(自动识别PDT/PST,不用手动切换偏移量)
sf_timezone = pytz.timezone('America/Los_Angeles')
df['sf_local_time'] = df['gmt_time'].dt.tz_convert(sf_timezone)

# 4. 保存转换后的结果到新Excel(建议不要直接覆盖原文件,留个备份)
df.to_excel('hello123_with_sf_time.xlsx', engine='openpyxl', index=False)

print("转换完成!带旧金山时间的新文件已生成")

踩坑提示

  • 如果你的时间戳是纯数字UTC时间戳(秒/毫秒级),可以这样解析:
    # 秒级时间戳用unit='s',毫秒级用unit='ms'
    df['gmt_time'] = pd.to_datetime(df['gmt_time'], unit='s', utc=True)
    
  • 如果原时间戳已经是datetime类型但没带时区,必须先本地化到UTC再转换:
    df['gmt_time'] = df['gmt_time'].dt.tz_localize('UTC')
    
  • 为啥不用手动写UTC-7?因为旧金山的时区会在3-11月用PDT(UTC-7),冬令时自动切PST(UTC-8),用America/Los_Angeles时区会帮你自动处理,不用手动改偏移量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:17:06