Python 3.9 introduced the zoneinfo
module:
The
zoneinfo
module provides a concrete time zone implementation to support the IANA time zone database as originally specified in PEP 615. By default,zoneinfo
uses the system’s time zone data if available; if no system time zone data is available, the library will fall back to using the first-partytzdata
package available on PyPI.
On my Ubuntu machine, it supports lots of time zones:
>>> from zoneinfo import ZoneInfo
>>> ZoneInfo("America/New_York")
zoneinfo.ZoneInfo(key='America/New_York')
>>> ZoneInfo("MST") # Mountain Standard Time
zoneinfo.ZoneInfo(key='MST')
>>> ZoneInfo("CET") # Central European Time
zoneinfo.ZoneInfo(key='CET')
However, it doesn't seem to support some time zones abbreviations used in North America like Central Time (CT), Central Standard Time (CST) or Pacific Standard Time (PST).
>>> ZoneInfo("CT")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key CT'
>>> ZoneInfo("CST")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key CST'
>>> ZoneInfo("PST")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key PST'
How can I get the right ZoneInfo
objects for time zones like CT, CST or PST? Is the time zone database lacking? Does it depend on the operating system that I'm running?