Python计算不同时区当前时间异常:以纽时差不符求助
问题原因及解决方案
- 核心问题:你使用的
EST是固定时区(东部标准时间,GMT-5),它不会自动切换夏令时。而纽约在夏令时(EDT)期间需要使用包含夏令时规则的时区标识符,而非固定的EST。 - pytz中,
EST属于静态时区,不包含夏令时切换逻辑;正确的做法是使用'America/New_York'这个时区,它会根据日期自动切换EDT(夏令时)和EST(标准时间)。
修正后的代码
from pytz import timezone from datetime import datetime tz1 = timezone('Israel') dt1 = datetime.now(tz1) # 使用包含夏令时规则的纽约时区 tz2 = timezone('America/New_York') dt2 = datetime.now(tz2) print(f'{dt1} vs {dt2} ')
验证结果
修正后,纽约时间会自动应用EDT(GMT-4),此时以色列(IDT,GMT+3)与纽约的时差为7小时,和理论值一致。
内容的提问来源于stack exchange,提问作者jeremy_rutman
相关产品推荐
相关产品推荐

