Python 时区全名
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”。