Python时区全名

Mav*_*ine 5 python timezone pytz

pytz以诸如America / Chicago,America / Los_Angeles,Asia / Kolkata或tz缩写的格式提供时区列表。

我想要时区的全名。

  • 中部标准时间
  • 太平洋标准时间
  • 印度标准时间

这在Python中可行吗?

Mat*_*int 5

该统一CLDR项目包含了许多本地化的字符串,其中包括许多不同的语言时区的人类可读的名字。

快速搜索 CLDR 的 Python 实现找到了 Babel 库。文档的这一部分中显示的示例如下:

>>> british = get_timezone('Europe/London')
>>> format_datetime(dt, 'H:mm zzzz', tzinfo=british, locale='en_US')
u'16:30 British Summer Time'
Run Code Online (Sandbox Code Playgroud)

在这里我们可以看到,在dt变量指定的日期和时间,以及 的 IANA 时区(如 pytz 使用的)Europe/London,英文显示名称为“British Summer Time”。

还有一个示例说明如何仅获取通用时区名称,而不考虑特定日期:

>>> from babel import Locale
>>> from babel.dates import get_timezone_name, get_timezone

>>> tz = get_timezone('Europe/Berlin')
>>> get_timezone_name(tz, locale=Locale.parse('pt_PT'))
u'Hor\xe1rio Alemanha'
Run Code Online (Sandbox Code Playgroud)

也就是说,Europe/Berlin时区的葡萄牙语名称为“Horário Alemanha”。