如何用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
相关产品推荐
相关产品推荐

