Python使用pytz实现时区使用与转换的示例详解

作者:

文章目录
  • import pytz from datetime import datetime # 1. 获取当前UTC时间 utc_now = datetime.now(pytz.utc) # 2. 转换为目标时区(示例:上海和纽约) shanghai_tz = pytz.timezone(‘Asia/Shanghai’) newyork_tz = pytz.timezone(‘America/New_York’) shanghai_time = utc_now.astimezone(shanghai_tz) newyork_time = utc_now.astimezone(newyork_tz) # 3. 比较两个时区的时间 time_diff = shanghai_time – newyork_time is_same_day = shanghai_time.date() == newyork_time.date() print(f”UTC时间: {utc_now.strftime(‘%Y-%m-%d %H:%M:%S %Z’)}”) print(f”上海时间: {shanghai_time.strftime(‘%Y-%m-%d %H:%M:%S %Z’)}”) print(f”纽约时间: {newyork_time.strftime(‘%Y-%m-%d %H:%M:%S %Z’)}”) print(f”时间差: {abs(time_diff.total_seconds()/3600):.1f}小时”) print(f”是否同一天: {‘是’ if is_same_day else ‘否’}”) 输出示例: UTC时间: 2025-06-26 07:30:00 UTC上海时间: 2025-06-26 15:30:00 CST纽约时间: 2025-06-26 03:30:00 EDT时间差: 12.0小时是否同一天: 是
  • 下表列出高频使用的时区(完整列表包含563个时区,需通过pytz.all_timezones获取): 大洲 时区标识 代表城市/地区 UTC偏移示例 亚洲 Asia/Shanghai 中国上海 UTC+8 Asia/Tokyo 日本东京 UTC+9 Asia/Dubai 阿联酋迪拜 UTC+4 美洲 America/New_York 美国纽约 UTC-4 (夏令时) America/Los_Angeles 美国洛杉矶 UTC-7 (夏令时) America/Sao_Paulo 巴西圣保罗 UTC-3 欧洲 Europe/London 英国伦敦 UTC+1 (夏令时) Europe/Paris 法国巴黎 UTC+2 (夏令时) Europe/Moscow 俄罗斯莫斯科 UTC+3 大洋洲 Australia/Sydney 澳大利亚悉尼 UTC+10 Pacific/Auckland 新西兰奥克兰 UTC+12 非洲 Africa/Cairo 埃及开罗 UTC+2 Africa/Johannesburg 南非约翰内斯堡 UTC+2 极地 Antarctica/McMurdo 南极麦克默多站 UTC+12 通用 UTC 协调世界时 UTC±0
  • 获取全部时区列表 import pytz print(“总时区数量:”, len(pytz.all_timezones)) # 输出563 for tz in pytz.common_timezones: # 常用时区(约403个) print(tz) 关键注意事项: 夏令时影响:时区偏移量会随夏令时变化(如纽约夏季为UTC-4,冬季为UTC-5) 时区命名规范:大洲/城市格式(避免使用EST/CST等缩写,因其不唯一) 数据库更新:通过pip install –upgrade pytz更新时区规则 时区比较场景示例 # 检查两个时区是否均为星期一 def is_both_monday(tz1: str, tz2: str) -> bool: tz1_time = datetime.now(pytz.timezone(tz1)) tz2_time = datetime.now(pytz.timezone(tz2)) return tz1_time.weekday() == 0 and tz2_time.weekday() == 0 # 0=周一 print(is_both_monday(“Asia/Shanghai”, “Europe/London”)) # 根据当前日期返回布尔值 查看有哪些时区 pytz有all_timezones、common_timezones这两个属性来查看有哪些时区。 # -*- coding: utf-8 -*- import pytz print(pytz.all_timezones) print(pytz.common_timezones) 查询某个的时区 可以根据国家代码查找这个国家的所有时区。 创建时区对象 根据上面得到的时区信息,就可以创建指定的时区对象。比如创建上海时区对象: tz = pytz.timezone(‘Asia/Shanghai’) 时间按时区转换 # -*- coding: utf-8 -*- import pytz import datetime utc = pytz.timezone(‘UTC’) now_time = datetime.datetime.now(tz=utc) print(now_time) shanghai = pytz.timezone(‘Asia/Shanghai’) shanghai_time = datetime.datetime.now(tz=shanghai) print(shanghai_time) 得到某个时区的时间 然后在创建时间对象时进行指定上面时区,就可以得到指定时区的日期时间: >>> import datetime >>> datetime.datetime.now(tz) datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=<DstTzInfo ‘Asia/Shanghai’ CST+8:00:00 STD>) 到此这篇关于Python使用pytz实现时区使用与转换的示例详解的文章就介绍到这了,更多相关Python pytz时区使用内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python时间操作之pytz模块使用详解 Python用模块pytz来转换时区 Python时区设置方法与pytz查询时区教程 Python中pytz时区使用设置实现
  • 目录
    • 一、Python代码实现:时区转换与时间比较
    • 二、pytz时区参数表格(常用时区)
    • 三、扩展说明

    import pytz
    from datetime import datetime
    
    # 1. 获取当前UTC时间
    utc_now = datetime.now(pytz.utc)
    
    # 2. 转换为目标时区(示例:上海和纽约)
    shanghai_tz = pytz.timezone('Asia/Shanghai')
    newyork_tz = pytz.timezone('America/New_York')
    shanghai_time = utc_now.astimezone(shanghai_tz)
    newyork_time = utc_now.astimezone(newyork_tz)
    
    # 3. 比较两个时区的时间
    time_diff = shanghai_time - newyork_time
    is_same_day = shanghai_time.date() == newyork_time.date()
    
    print(f"UTC时间: {utc_now.strftime('%Y-%m-%d %H:%M:%S %Z')}")
    print(f"上海时间: {shanghai_time.strftime('%Y-%m-%d %H:%M:%S %Z')}")
    print(f"纽约时间: {newyork_time.strftime('%Y-%m-%d %H:%M:%S %Z')}")
    print(f"时间差: {abs(time_diff.total_seconds()/3600):.1f}小时")
    print(f"是否同一天: {'是' if is_same_day else '否'}")
    

    输出示例

    UTC时间: 2025-06-26 07:30:00 UTC
    上海时间: 2025-06-26 15:30:00 CST
    纽约时间: 2025-06-26 03:30:00 EDT
    时间差: 12.0小时
    是否同一天: 是

    下表列出高频使用的时区(完整列表包含563个时区,需通过pytz.all_timezones获取):

    大洲 时区标识 代表城市/地区 UTC偏移示例
    亚洲 Asia/Shanghai 中国上海 UTC+8
    Asia/Tokyo 日本东京 UTC+9
    Asia/Dubai 阿联酋迪拜 UTC+4
    美洲 America/New_York 美国纽约 UTC-4 (夏令时)
    America/Los_Angeles 美国洛杉矶 UTC-7 (夏令时)
    America/Sao_Paulo 巴西圣保罗 UTC-3
    欧洲 Europe/London 英国伦敦 UTC+1 (夏令时)
    Europe/Paris 法国巴黎 UTC+2 (夏令时)
    Europe/Moscow 俄罗斯莫斯科 UTC+3
    大洋洲 Australia/Sydney 澳大利亚悉尼 UTC+10
    Pacific/Auckland 新西兰奥克兰 UTC+12
    非洲 Africa/Cairo 埃及开罗 UTC+2
    Africa/Johannesburg 南非约翰内斯堡 UTC+2
    极地 Antarctica/McMurdo 南极麦克默多站 UTC+12
    通用 UTC 协调世界时 UTC±0

    获取全部时区列表

    import pytz
    print("总时区数量:", len(pytz.all_timezones))  # 输出563
    for tz in pytz.common_timezones:  # 常用时区(约403个)
        print(tz)
    

    关键注意事项

    • 夏令时影响:时区偏移量会随夏令时变化(如纽约夏季为UTC-4,冬季为UTC-5)
    • 时区命名规范:大洲/城市格式(避免使用EST/CST等缩写,因其不唯一)
    • 数据库更新:通过pip install --upgrade pytz更新时区规则

    时区比较场景示例

    # 检查两个时区是否均为星期一
    def is_both_monday(tz1: str, tz2: str) -> bool:
        tz1_time = datetime.now(pytz.timezone(tz1))
        tz2_time = datetime.now(pytz.timezone(tz2))
        return tz1_time.weekday() == 0 and tz2_time.weekday() == 0  # 0=周一
    
    print(is_both_monday("Asia/Shanghai", "Europe/London"))  # 根据当前日期返回布尔值
    

    查看有哪些时区

    pytz有all_timezonescommon_timezones这两个属性来查看有哪些时区。

    # -*- coding: utf-8 -*-
    import pytz
     
    print(pytz.all_timezones)
    print(pytz.common_timezones)

    查询某个的时区

    可以根据国家代码查找这个国家的所有时区。

    创建时区对象

    根据上面得到的时区信息,就可以创建指定的时区对象。比如创建上海时区对象:

    tz = pytz.timezone('Asia/Shanghai')

    时间按时区转换

    # -*- coding: utf-8 -*-
    import pytz
    import datetime
     
    utc = pytz.timezone('UTC')
    now_time = datetime.datetime.now(tz=utc)
    print(now_time)
     
    shanghai = pytz.timezone('Asia/Shanghai')
    shanghai_time = datetime.datetime.now(tz=shanghai)
    print(shanghai_time)

    得到某个时区的时间

    然后在创建时间对象时进行指定上面时区,就可以得到指定时区的日期时间:

    >>> import datetime
    >>> datetime.datetime.now(tz)
    datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)

    到此这篇关于Python使用pytz实现时区使用与转换的示例详解的文章就介绍到这了,更多相关Python pytz时区使用内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python时间操作之pytz模块使用详解
    • Python用模块pytz来转换时区
    • Python时区设置方法与pytz查询时区教程
    • Python中pytz时区使用设置实现

    站内搜索