如何列出Python中Time和Datetime库可用时区以获取对应时区时间?
列出Python中可用时区的方法
标准库的datetime和time本身没有内置完整的时区列表,通常我们会借助pytz库(你示例代码中用到的库)来获取IANA时区数据库的完整列表,也可以用Python 3.9+新增的标准库zoneinfo来实现。
方法一:使用pytz库获取时区列表
pytz提供了两个属性来获取时区列表:
pytz.all_timezones:包含所有IANA时区,数量较多pytz.common_timezones:包含常用时区,冗余更少
示例代码:
import pytz # 获取所有时区并打印前10个示例 all_timezones = pytz.all_timezones print("所有时区示例:") for tz in all_timezones[:10]: print(tz) # 获取常用时区并打印前10个示例 common_timezones = pytz.common_timezones print("\n常用时区示例:") for tz in common_timezones[:10]: print(tz)
输出示例:
所有时区示例: Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau 常用时区示例: Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau Africa/Blantyre
方法二:使用Python 3.9+的zoneinfo标准库
如果你的Python版本在3.9及以上,可以直接用标准库zoneinfo获取系统自带的时区列表,无需额外安装第三方库:
from zoneinfo import available_timezones # 获取所有可用时区并转成列表 all_tz = list(available_timezones()) print("zoneinfo时区示例:") print(all_tz[:10])
结合时区列表获取对应时区时间
拿到时区列表后,你可以将其作为选项供用户选择,再获取对应时区的当前时间,比如:
from datetime import datetime import pytz # 假设从列表中选中某个时区 selected_tz = pytz.timezone('Asia/Shanghai') current_time = datetime.now(selected_tz) print(current_time.strftime('%Y-%m-%d_%H-%M-%S'))
内容的提问来源于stack exchange,提问作者Pradeep Padmanaban C
相关产品推荐
相关产品推荐

