我想知道Python库pytz中timezone参数的所有可能值是什么。怎么做呢?
当前回答
它们似乎是由这里找到的tz数据库时区填充的。
其他回答
可从Python3.9获取:
zoneinfo, Python3.9中的新模块,用于IANA数据库。 为了获取所有可用的时区,首先:
pip install tzdata
然后:
import zoneinfo
print(zoneinfo.available_timezones())
你可以在这里找到所有pytz支持的时区:
https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568
下面是一个包含国家代码、名称、大洲、首都和pytz时区的Python列表:
countries = [
{'timezones': ['Europe/Paris'], 'code': 'FR', 'continent': 'Europe', 'name': 'France', 'capital': 'Paris'}
{'timezones': ['Africa/Kampala'], 'code': 'UG', 'continent': 'Africa', 'name': 'Uganda', 'capital': 'Kampala'},
{'timezones': ['Asia/Colombo'], 'code': 'LK', 'continent': 'Asia', 'name': 'Sri Lanka', 'capital': 'Sri Jayewardenepura Kotte'},
{'timezones': ['Asia/Riyadh'], 'code': 'SA', 'continent': 'Asia', 'name': 'Saudi Arabia', 'capital': 'Riyadh'},
{'timezones': ['Africa/Luanda'], 'code': 'AO', 'continent': 'Africa', 'name': 'Angola', 'capital': 'Luanda'},
{'timezones': ['Europe/Vienna'], 'code': 'AT', 'continent': 'Europe', 'name': 'Austria', 'capital': 'Vienna'},
{'timezones': ['Asia/Calcutta'], 'code': 'IN', 'continent': 'Asia', 'name': 'India', 'capital': 'New Delhi'},
{'timezones': ['Asia/Dubai'], 'code': 'AE', 'continent': 'Asia', 'name': 'United Arab Emirates', 'capital': 'Abu Dhabi'},
{'timezones': ['Europe/London'], 'code': 'GB', 'continent': 'Europe', 'name': 'United Kingdom', 'capital': 'London'},
]
要获得完整的列表,请参阅GitHub Gist。
不要创建自己的列表- 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)
推荐文章
- ValueError: numpy。Ndarray大小改变,可能表示二进制不兼容。期望从C头得到88,从PyObject得到80
- Anaconda /conda -安装特定的软件包版本
- 我在哪里调用Keras的BatchNormalization函数?
- 打印测试执行时间并使用py.test锁定缓慢的测试
- 插入一行到熊猫数据框架
- 要列出Pandas DataFrame列
- 在Django模型中存储电话号码的最佳方法是什么?
- 从导入的模块中模拟函数
- 如何禁用django-rest-framework的管理风格的可浏览界面?
- 滚动或滑动窗口迭代器?
- python的方法找到最大值和它的索引在一个列表?
- 如何读取文件的前N行?
- 如何删除matplotlib中的顶部和右侧轴?
- 解析.py文件,读取AST,修改它,然后写回修改后的源代码
- Visual Studio Code:如何调试Python脚本的参数