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

如何在Python中将纽约时区的字符串时间转换为UTC时间?

如何在Python中将纽约时区的字符串时间转换为UTC时间?

嘿,这问题我之前处理过,刚好能帮到你!要把给定的纽约时区时间字符串转换成UTC时间,我们可以利用Python的时区处理工具来完成,下面是两种实用的实现方式,完全匹配你给出的输入输出需求:

输入(纽约时间字符串) = '2024-11-01 13:00:00'
输出(UTC时间字符串) = '2024-11-01 17:00:00'


方法一:使用Python 3.9+内置的zoneinfo(推荐)

这个是Python 3.9之后自带的模块,不需要额外安装第三方包,用法更简洁直观:

from datetime import datetime
from zoneinfo import ZoneInfo

# 定义输入的纽约时间字符串
ny_time_str = '2024-11-01 13:00:00'

# 1. 解析字符串为纽约时区的datetime对象
# 用replace()绑定纽约时区,zoneinfo会自动处理夏令时切换
ny_datetime = datetime.strptime(ny_time_str, '%Y-%m-%d %H:%M:%S').replace(tzinfo=ZoneInfo('America/New_York'))

# 2. 转换为UTC时区的datetime对象
utc_datetime = ny_datetime.astimezone(ZoneInfo('UTC'))

# 3. 格式化为目标字符串格式
utc_time_str = utc_datetime.strftime('%Y-%m-%d %H:%M:%S')

print(utc_time_str)  # 运行后输出:'2024-11-01 17:00:00'

方法二:使用pytz(兼容Python 3.9以下版本)

如果你用的是Python 3.8及更早版本,就需要安装pytz库来处理时区,步骤如下:

  1. 先安装pytz:
pip install pytz
  1. 然后编写转换代码:
from datetime import datetime
import pytz

ny_time_str = '2024-11-01 13:00:00'

# 1. 获取纽约时区对象,并用localize()绑定到解析后的datetime上
# 注意:pytz必须用localize()来绑定时区,不能直接通过strptime的tzinfo参数传入
ny_tz = pytz.timezone('America/New_York')
ny_datetime = ny_tz.localize(datetime.strptime(ny_time_str, '%Y-%m-%d %H:%M:%S'))

# 2. 转换为UTC时区
utc_datetime = ny_datetime.astimezone(pytz.UTC)

# 3. 格式化输出字符串
utc_time_str = utc_datetime.strftime('%Y-%m-%d %H:%M:%S')

print(utc_time_str)  # 运行后输出:'2024-11-01 17:00:00'

小提示:两种方法里的时区标识符都用America/New_York,这是IANA标准时区名,能自动处理纽约的夏令时切换,不用我们手动调整时差,非常省心!

备注:内容来源于stack exchange,提问作者Alpha Warrior

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 08:38:01