我想知道Python库pytz中timezone参数的所有可能值是什么。怎么做呢?
当前回答
不要创建自己的列表- pytz有一个内置的集合:
import pytz
set(pytz.all_timezones_set)
>>> {'Europe/Vienna', 'America/New_York', 'America/Argentina/Salta',..}
然后你可以应用一个时区:
import datetime
tz = pytz.timezone('Pacific/Johnston')
ct = datetime.datetime.now(tz=tz)
>>> ct.isoformat()
2017-01-13T11:29:22.601991-05:00
或者如果你已经有一个datetime对象是TZ感知的(不是天真的):
# This timestamp is in UTC
my_ct = datetime.datetime.now(tz=pytz.UTC)
# Now convert it to another timezone
new_ct = my_ct.astimezone(tz)
>>> new_ct.isoformat()
2017-01-13T11:29:22.601991-05:00
其他回答
它们似乎是由这里找到的tz数据库时区填充的。
可从Python3.9获取:
zoneinfo, Python3.9中的新模块,用于IANA数据库。 为了获取所有可用的时区,首先:
pip install tzdata
然后:
import zoneinfo
print(zoneinfo.available_timezones())
时区名称是指定时区的唯一可靠方式。
您可以在这里找到时区名称列表:http://en.wikipedia.org/wiki/List_of_tz_database_time_zones 请注意,该列表包含许多别名,例如时区的US/Eastern正确地称为America/New_York。
如果您希望通过编程方式从zoneinfo数据库创建此列表,则可以从zone编译它。zoneinfo数据库中的TAB文件。我不认为pytz有一个API来获取它们,而且我也不认为它会非常有用。
不要创建自己的列表- pytz有一个内置的集合:
import pytz
set(pytz.all_timezones_set)
>>> {'Europe/Vienna', 'America/New_York', 'America/Argentina/Salta',..}
然后你可以应用一个时区:
import datetime
tz = pytz.timezone('Pacific/Johnston')
ct = datetime.datetime.now(tz=tz)
>>> ct.isoformat()
2017-01-13T11:29:22.601991-05:00
或者如果你已经有一个datetime对象是TZ感知的(不是天真的):
# This timestamp is in UTC
my_ct = datetime.datetime.now(tz=pytz.UTC)
# Now convert it to another timezone
new_ct = my_ct.astimezone(tz)
>>> new_ct.isoformat()
2017-01-13T11:29:22.601991-05:00
另外,我知道我们可以在country_timezones和country_names的帮助下从这个库中提供所有pytz时区的综合列表:
In [1]: from pytz import country_names, country_timezones
In [2]: all_timezones = [country_timezones.get(country) for country in country_names]
In [3]: all_timezones
Out[3]:
[['Europe/Andorra'],
['Asia/Dubai'],
['Asia/Kabul'],
['America/Antigua'],
['America/Anguilla'],
['Europe/Tirane'],
['Asia/Yerevan'],
['Africa/Luanda'],
['Antarctica/McMurdo',
'Antarctica/Casey',
'Antarctica/Davis',
'Antarctica/DumontDUrville',
'Antarctica/Mawson',
'Antarctica/Palmer
...
此外,还有另一种方法来获得一个通用的时区名称列表,它将由common_timezones_set提供:
In [1]: from pytz import common_timezones_set
In [2]: list(common_timezones_set)
Out[2]:
['Pacific/Palau',
'Africa/Algiers',
'Pacific/Pohnpei',
'Africa/Brazzaville',
'America/Goose_Bay',
'America/North_Dakota/Beulah',
'Africa/Kinshasa',
'America/Whitehorse',
'America/Sao_Paulo',
'Asia/Jerusalem',
'Canada/Atlantic',
'America/Santiago',
'America/Adak',
'Pacific/Efate',
...
引用:
国家资料[pytz-docs] 助手(pytz-docs)
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何在django应用程序中显示favicon ?
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if