如何在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库来处理时区,步骤如下:
- 先安装pytz:
pip install pytz
- 然后编写转换代码:
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
相关产品推荐
相关产品推荐

