通过 TimezoneFinder 获取的时区,“America/Ciudad_Juarez”,使用 pytz 生成错误 UnknowTimeZone

问题描述 投票:0回答:3

我使用应用于机场经度和纬度的

TimezoneFinder().timezone_at
从世界各地的机场检索时区。当我想使用这些时区(计算航班的起飞和到达时间)时,除了 America/Ciudad_Juarez 之外,一切正常。 这个简单的代码:

from timezonefinder import TimezoneFinder
from pytz import timezone
tz = TimezoneFinder().timezone_at(lng=-106.48333, lat=31.73333)
# retrieves 'America/Ciudad_Juarez'
timezone(tz)

产生此错误:

UnknownTimeZoneError: 'America/Ciudad_Juarez'

我检查了这个优秀的维基百科页面,这个时区是正确的,规范的他们说。令我惊讶的是,通过

timezonefinder
获取的时区未被
pytz
识别。我怎样才能干净地解决这个问题?

python datetime timezone pytz
3个回答
4
投票

这个时区是最近才添加的,因为华雷斯城决定将其时间与美国夏令时保持一致。有关公告,请参阅 http://mm.icann.org/pipermail/tz-announce/2022-November/000076.html。看起来 pytz 尚未更新以包含该更改。


3
投票

pytz 已弃用。 Python 3.9+ 没有问题 zoneinfo:

from datetime import datetime
from zoneinfo import ZoneInfo

print(datetime.now(ZoneInfo("America/Ciudad_Juarez")))
# 2022-12-15 12:14:07.369739-07:00

(GNU/Linux 上的 Python 3.9.15)


0
投票

如果您的服务无法识别

America/Ciudad_Juarez
,您可以使用我们以前的
America/Denver
,它遵循与
America/Ciudad_Juarez
完全相同的时间变化。而且,它与
America/Chihuahua
不同。

我个人在手机、日历、谷歌中使用

America/Denver
好几年了,它总是准确的。当每项服务都可用时,我已经切换到
America/Ciudad_Juarez

© www.soinside.com 2019 - 2024. All rights reserved.