Python 时区全名

5 投票
1 回答
3106 浏览
提问于 2025-04-18 16:41

pytz 是一个可以提供时区列表的工具,像是 America/Chicago(美国/芝加哥)、America/Los_Angeles(美国/洛杉矶)、Asia/Kolkata(亚洲/加尔各答)或者一些时区的缩写。

我想要获取时区的全名。

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

在 Python 中可以做到吗?

1 个回答

8

Unicode CLDR项目里有很多本地化的字符串,包括各种语言中可读的人类时间区名称。

我简单搜索了一下Python中实现CLDR的库,找到了Babel库。在文档的这一部分中有一个示例:

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

在这个例子中,我们可以看到在dt变量指定的日期和时间,以及使用pytz的IANA时区Europe/London,英文显示名称是“英国夏令时”。

还有一个示例是如何获取通用的时区名称,而不考虑具体的日期:

>>> 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'

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

撰写回答