我想知道Python库pytz中timezone参数的所有可能值是什么。怎么做呢?


当前回答

下面是一个包含国家代码、名称、大洲、首都和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时区的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支持的时区:

https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568

另外,我知道我们可以在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)

它们似乎是由这里找到的tz数据库时区填充的。

你可以用pytz.all_timezones列出所有可用的时区:

In [40]: import pytz
In [41]: pytz.all_timezones
Out[42]: 
['Africa/Abidjan',
 'Africa/Accra',
 'Africa/Addis_Ababa',
 ...]

还有pytz.common_timezones:

In [45]: len(pytz.common_timezones)
Out[45]: 403

In [46]: len(pytz.all_timezones)
Out[46]: 563