登录
首页 >  文章 >  python教程

Python3.9zoneinfo使用详解

时间:2026-01-26 16:40:35 208浏览 收藏

本篇文章向大家介绍《Python 3.9 zoneinfo 使用教程》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

Python 3.9 的 zoneinfo 模块提供内置时区支持,基于 IANA 数据库,无需第三方库即可创建、转换时区并自动处理夏令时。1. 使用 ZoneInfo 绑定时区到 datetime,如 Asia/Shanghai、America/New_York;2. 通过 astimezone 转换时区;3. 支持常见区域/城市命名格式;4. 自动处理 DST 切换,可用 dst() 方法判断夏令时。推荐在 Python 3.9+ 中优先使用 zoneinfo。

如何使用python3.9中的zoneinfo时区模块?

Python 3.9 引入了 zoneinfo 模块,作为内置的时区支持方案,无需额外安装第三方库(如 pytz),就能处理国际时区。它基于 IANA 时区数据库,使用简单且与 datetime 配合良好。

1. 基本用法:获取时区并绑定时间

使用 ZoneInfo 类来指定时区,然后将其传入 datetimetzinfo 参数。

from datetime import datetime from zoneinfo import ZoneInfo

创建带有时区的当前时间

beijing_time = datetime.now(ZoneInfo("Asia/Shanghai")) print(beijing_time)

创建某个具体时间并指定时区

ny_time = datetime(2023, 10, 1, 12, 0, 0, tzinfo=ZoneInfo("America/New_York")) print(ny_time)

2. 时区转换:将时间从一个时区转到另一个

只要原始时间包含时区信息,就可以通过 astimezone() 转换为目标时区。

# 将北京时间转为纽约时间 beijing = datetime.now(ZoneInfo("Asia/Shanghai")) new_york = beijing.astimezone(ZoneInfo("America/New_York")) print("北京:", beijing) print("纽约:", new_york)

3. 常见时区名称示例

IANA 使用“区域/城市”格式命名时区。常见包括:

  • Asia/Shanghai - 中国标准时间(CST)
  • Asia/Tokyo - 日本时间
  • Europe/London - 英国伦敦(自动处理夏令时)
  • America/New_York - 美国东部时间(含夏令时)
  • UTC - 标准世界时间

4. 处理夏令时(DST)

zoneinfo 自动处理夏令时切换。例如,在美国纽约,3月第二个周日会进入夏令时。

# 演示夏令时前后的时间差异 dt1 = datetime(2023, 3, 12, 1, 30, tzinfo=ZoneInfo("America/New_York")) # 冬令时期间 dt2 = datetime(2023, 3, 12, 3, 30, tzinfo=ZoneInfo("America/New_York")) # 夏令时跳过2点

print(dt1) # 正常输出 print(dt2) # 仍合法,系统可识别为 DST 后的时间

如果需要判断是否为夏令时,可用 dst() 方法:

print(dt2.dst()) # 返回 timedelta 表示偏移,非零表示夏令时

基本上就这些。zoneinfo 让 Python 原生支持丰富、准确的时区操作,推荐在 Python 3.9+ 项目中优先使用它代替 pytz。注意确保系统或 Python 安装附带了时区数据(通常默认包含)。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Python3.9zoneinfo使用详解》文章吧,也可关注golang学习网公众号了解相关技术文章。

前往漫画官网入口并下载 ➜
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>